Проверка статуса подписки в React Native SDK
Чтобы решить, может ли пользователь получить доступ к платному контенту или должен увидеть пейвол, нужно проверить его уровень доступа в профиле.
В этой статье показано, как обращаться к состоянию профиля, чтобы понять, что показать пользователю — пейвол или платный контент.
Получение статуса подписки
Когда вы решаете, показать пользователю пейвол или платный контент, вы проверяете его уровень доступа в профиле. Есть два варианта:
- Вызовите
getProfile, если нужны актуальные данные профиля прямо сейчас (например, при запуске приложения) или если хотите принудительно обновить их. - Настройте автоматические обновления профиля, чтобы хранить локальную копию, которая автоматически обновляется при изменении статуса подписки.
Получить профиль
Самый простой способ узнать статус подписки — использовать метод getProfile для обращения к профилю:
try {
const profile = await adapty.getProfile();
} catch (error) {
// handle the error
}
Подписка на обновления подписки
Чтобы автоматически получать обновления профиля в приложении:
- Используйте
adapty.addEventListener('onLatestProfileLoad')для отслеживания изменений профиля — Adapty будет автоматически вызывать этот метод при каждом изменении статуса подписки пользователя. - Сохраняйте обновлённые данные профиля при вызове этого метода, чтобы использовать их в любом месте приложения без дополнительных сетевых запросов.
class SubscriptionManager {
private currentProfile: any = null;
constructor() {
// Listen for profile updates
adapty.addEventListener('onLatestProfileLoad', (profile) => {
this.currentProfile = profile;
// Update UI, unlock content, etc.
});
}
// Use stored profile instead of calling getProfile()
hasAccess(): boolean {
return this.currentProfile?.accessLevels?.['premium']?.isActive ?? false;
}
}
Adapty автоматически вызывает обработчик события onLatestProfileLoad при запуске приложения, предоставляя кешированные данные подписки даже при отсутствии интернета.
Связь профиля с логикой пейвола
Когда нужно принять немедленное решение о показе пейвола или предоставлении доступа к платным функциям, можно проверить профиль пользователя напрямую. Этот подход удобен при запуске приложения, при переходе в премиум-разделы или перед отображением определённого контента.
const checkAccessLevel = async () => {
try {
const profile = await adapty.getProfile();
return profile.accessLevels['YOUR_ACCESS_LEVEL']?.isActive === true;
} catch (error) {
console.warn('Error checking access level:', error);
return false; // Show paywall if access check fails
}
};
const initializePaywall = async () => {
try {
await loadPaywall();
const hasAccess = await checkAccessLevel();
if (!hasAccess) {
// Show paywall if no access
}
} catch (error) {
console.warn('Error initializing paywall:', error);
}
};
Дальнейшие шаги
Теперь, когда вы знаете, как отслеживать статус подписки, узнайте, как работать с профилями пользователей, чтобы они могли получить доступ к тому, за что заплатили.