在 React Native SDK 中检查订阅状态
借助 Adapty,订阅状态的跟踪变得轻而易举。您无需在代码中手动插入产品 ID,只需检查用户是否拥有有效的访问等级,即可轻松确认其订阅状态。
开始检查订阅状态前(点击展开)
- iOS 端,请配置 App Store Server Notifications
- Android 端,请配置 Real-time Developer Notifications (RTDN)
访问等级与 AdaptyProfile 对象
访问等级是 AdaptyProfile 对象的属性。我们建议在应用启动时获取用户画像(例如在识别用户时),并在发生变更时及时更新。这样您就可以直接使用用户画像对象,而无需反复请求。
如需在用户画像更新时收到通知,请按照下方监听用户画像更新(包括访问等级)章节的说明监听用户画像变更事件。
想了解 Adapty SDK 如何集成到移动应用中的真实示例?请查看我们的示例应用,其中展示了完整的配置过程,包括显示付费墙、完成购买以及其他基本功能。
从服务器获取访问等级
使用 .getProfile() 方法从服务器获取访问等级:
try {
const profile = await adapty.getProfile();
} catch (error) {
// handle the error
}
响应参数:
| 参数 | 描述 |
|---|---|
| Profile | AdaptyProfile 对象。通常情况下,您只需检查用户画像的访问等级状态,即可判断用户是否拥有应用的高级访问权限。
|
.getProfile() 方法会返回用户画像,您可以从中获取访问等级状态。每个应用可以设置多个访问等级。例如,如果您运营一款新闻应用,并针对不同主题单独销售订阅,可以创建”sports”和”science”等访问等级。但在大多数情况下,您只需要一个访问等级,此时可以直接使用默认的”premium”访问等级。
以下是检查默认”premium”访问等级的示例:
try {
const profile = await adapty.getProfile();
const isActive = profile.accessLevels?.["premium"]?.isActive;
if (isActive) {
// grant access to premium features
}
} catch (error) {
// handle the error
}
监听订阅状态更新
每当用户的订阅发生变化时,Adapty 都会触发一个事件。
要接收来自 Adapty 的消息,您需要进行一些额外配置:
// Create an "onLatestProfileLoad" event listener
adapty.addEventListener('onLatestProfileLoad', profile => {
// handle any changes to subscription state
});
Adapty 也会在应用启动时触发一次事件,此时传递的是缓存中的订阅状态。
订阅状态缓存
Adapty SDK 实现的缓存机制会存储用户画像的订阅状态。这意味着即使服务器不可用,也可以通过缓存数据获取用户画像的订阅状态信息。
但需要注意的是,无法直接从缓存中请求数据。SDK 会每分钟定期向服务器发起查询,检查用户画像是否有任何更新或变更。如果存在修改(例如新的交易记录或其他更新),这些变更将同步写入缓存数据,以确保缓存与服务器保持一致。