在 Kotlin Multiplatform SDK 中检查订阅状态
借助 Adapty,订阅状态的追踪变得轻而易举。你无需在代码中手动插入产品 ID,只需检查用户是否拥有有效的访问等级,即可轻松确认其订阅状态。
在开始检查订阅状态之前,请先配置实时开发者通知(RTDN)。
访问等级与 AdaptyProfile 对象
访问等级是 AdaptyProfile 对象的属性。我们建议在应用启动时获取用户画像,例如在识别用户时,并在发生变化时及时更新。这样,你就可以直接使用用户画像对象,而无需反复请求。
如需在用户画像更新时收到通知,请参阅下方监听用户画像变更(包括访问等级)部分中的说明来监听变更事件。
想查看 Adapty SDK 集成到移动应用的真实示例?请参阅我们的示例应用,其中演示了完整的配置流程,包括显示付费墙、发起购买以及其他基本功能。
从服务器获取访问等级
要从服务器获取访问等级,请使用 .getProfile() 方法:
Adapty.getProfile().onSuccess { profile ->
// check the access
}.onError { error ->
// handle the error
}
响应参数:
| 参数 | 描述 |
|---|---|
| Profile | AdaptyProfile 对象。通常,您只需检查用户画像的访问等级状态,即可判断用户是否拥有应用的高级访问权限。
|
.getProfile() 方法可以获取用户画像,进而查看访问等级的状态。一个应用可以有多个访问等级。例如,如果你开发的是新闻类应用,并针对不同话题分别销售订阅,可以创建 “sports” 和 “science” 两个访问等级。但大多数情况下,你只需要一个访问等级,直接使用默认的 “premium” 访问等级即可。
下面是检查默认 “premium” 访问等级的示例:
Adapty.getProfile().onSuccess { profile ->
if (profile.accessLevels["premium"]?.isActive == true) {
// grant access to premium features
}
}.onError { error ->
// handle the error
}
监听订阅状态更新
每当用户的订阅发生变化时,Adapty 都会触发一个事件。
如需接收来自 Adapty 的消息,您需要进行以下额外配置:
Adapty.setOnProfileUpdatedListener { profile ->
// handle any changes to subscription state
}
Adapty 也会在应用启动时触发一个事件,此时将传递缓存中的订阅状态。
订阅状态缓存
Adapty SDK 内置了缓存机制,用于存储用户画像的订阅状态。这意味着即使服务器不可用,也可以通过缓存数据获取用户画像的订阅状态信息。
但需要注意的是,无法直接从缓存中请求数据。SDK 会每隔一分钟定期向服务器查询,检查用户画像是否有更新或变更。如果存在任何修改(如新交易或其他更新),这些变更将同步写入缓存数据,以确保其与服务器保持一致。