在 iOS SDK 中检查订阅状态
要决定用户是否可以访问付费内容或查看付费墙,您需要检查用户画像中的访问等级。
本文将介绍如何访问用户画像状态,以决定向用户展示什么内容——是显示付费墙还是授予付费功能的访问权限。
获取订阅状态
当您需要决定是向用户显示付费墙还是付费内容时,您需要检查其用户画像中的访问等级。您有两种选择:
- 如果需要立即获取最新的用户画像数据(例如应用启动时)或想要强制更新,请调用
getProfile。 - 设置自动用户画像更新,以保留一份本地副本,当订阅状态发生变化时自动刷新。
默认情况下,premium 访问等级在 Adapty 中已经存在。如果您不需要设置多个访问等级,直接使用 premium 即可。
获取用户画像
获取订阅状态最简单的方法是使用 getProfile 方法访问用户画像:
监听订阅更新
如果您希望在应用中自动接收用户画像更新:
- 在您选择的类型中遵循
AdaptyDelegate协议并实现didLoadLatestProfile方法——每当用户的订阅状态发生变化时,Adapty 会自动调用此方法。在下面的示例中,我们使用SubscriptionManager类型来协助处理订阅工作流和用户画像。该类型可以作为依赖项注入,或在 UIKit 应用中设置为单例,也可以从应用主结构体添加到 SwiftUI 环境中。 - 当此方法被调用时,存储更新后的用户画像数据,这样您就可以在整个应用中使用它,而无需进行额外的网络请求。
class SubscriptionManager: AdaptyDelegate {
nonisolated func didLoadLatestProfile(_ profile: AdaptyProfile) {
let hasAccess = profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false
// Update UI, unlock content, etc.
}
}
// Set delegate after Adapty activation
Adapty.delegate = subscriptionManager
Adapty 会在应用启动时自动调用 didLoadLatestProfile,即使设备处于离线状态也能提供缓存的订阅数据。
将用户画像与付费墙逻辑连接
当您需要立即决定是显示付费墙还是授予用户付费功能访问权限时,可以直接检查用户的用户画像。这种方式适用于以下场景:应用启动时、进入付费专区时,或在显示特定内容之前。
后续步骤
现在您已了解如何追踪订阅状态,接下来请了解如何使用用户画像,以确保其与您现有的身份验证系统及付费访问共享权限保持一致。
如果您没有自己的身份验证系统,这完全没有问题,Adapty 会为您管理用户,但您仍然可以阅读该指南,了解 Adapty 如何处理匿名用户。