Capacitor SDK'da abonelik durumunu kontrol etme
Adapty ile abonelik durumunu takip etmek artık çok kolay. Ürün kimliklerini manuel olarak kodunuza eklemenize gerek yok. Bunun yerine, aktif bir access level olup olmadığını kontrol ederek kullanıcının abonelik durumunu zahmetsizce doğrulayabilirsiniz.
Abonelik durumunu kontrol etmeye başlamadan önce (Genişletmek için tıklayın)
- iOS için App Store Server Notifications kurulumunu yapın
- Android için Gerçek Zamanlı Geliştirici Bildirimleri (RTDN) kurulumunu yapın
Access level ve AdaptyProfile nesnesi
Access level’lar, AdaptyProfile nesnesinin özellikleridir. Uygulamanız başladığında, örneğin bir kullanıcıyı tanımlarken, profili almanızı ve ardından değişiklik olduğunda güncellemenizi öneririz. Bu sayede profil nesnesini tekrar tekrar istemek zorunda kalmadan kullanabilirsiniz. Profil güncellemelerinden haberdar olmak için, aşağıdaki Profil güncellemelerini dinleme, access level değişiklikleri dahil bölümünde açıklandığı gibi profil değişikliklerini dinleyin.
Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğini gerçek bir örnekle görmek ister misiniz? Tam kurulumu, paywall’ların gösterimini, satın alma işlemlerini ve diğer temel işlevleri içeren örnek uygulamalarımıza göz atın.
Sunucudan access level bilgisini alma
Sunucudan access level bilgisini almak için .getProfile() metodunu kullanın:
try {
const profile = await adapty.getProfile();
console.log('Profile retrieved successfully');
} catch (error) {
console.error('Failed to get profile:', error);
}
Yanıt parametreleri:
| Parametre | Açıklama |
|---|---|
| profile | Bir AdaptyProfile nesnesi. Genellikle, kullanıcının uygulamaya premium erişimi olup olmadığını belirlemek için yalnızca profilin access level durumunu kontrol etmeniz gerekir. .getProfile metodu her zaman API’yi sorgulamaya çalıştığından en güncel sonucu sağlar. Herhangi bir nedenle (ör. internet bağlantısı olmaması) Adapty SDK sunucudan bilgi alamazsa, önbellekteki veriler döndürülür. Ayrıca Adapty SDK’nın bu bilgileri mümkün olduğunca güncel tutmak için AdaptyProfile önbelleğini düzenli aralıklarla güncellediğini de belirtmek gerekir. |
.getProfile() metodu, access level durumunu alabileceğiniz kullanıcı profilini size sağlar. Bir uygulamada birden fazla access level’a sahip olabilirsiniz. Örneğin, bir gazete uygulamanız varsa ve farklı konulara bağımsız olarak abonelik satıyorsanız, “sports” ve “science” adında access level’lar oluşturabilirsiniz. Ancak çoğu zaman yalnızca bir access level’a ihtiyaç duyacaksınız; bu durumda varsayılan “premium” access level’ı kullanabilirsiniz. |
Varsayılan “premium” access level’ını kontrol etmek için bir örnek:
try {
const profile = await adapty.getProfile();
const isActive = profile.accessLevels?.['premium']?.isActive;
if (isActive) {
// Grant access to premium features
console.log('User has premium access');
} else {
console.log('User does not have premium access');
}
} catch (error) {
console.error('Failed to check subscription status:', error);
}
Abonelik durumu güncellemelerini dinleme
Kullanıcının aboneliği her değiştiğinde, Adapty bir olay tetikler.
Adapty’den mesaj alabilmek için bazı ek yapılandırmalar yapmanız gerekir:
// Create an "onLatestProfileLoad" event listener
adapty.addListener('onLatestProfileLoad', (data) => {
const profile = data.profile;
const isActive = profile.accessLevels?.['premium']?.isActive;
if (isActive) {
console.log('Subscription status updated: User has premium access');
} else {
console.log('Subscription status updated: User does not have premium access');
}
});
Adapty, uygulama başlangıcında da bir olay tetikler. Bu durumda önbelleğe alınmış abonelik durumu iletilir.
Abonelik durumu önbelleği
Adapty SDK’da uygulanan önbellek, profilin abonelik durumunu saklar. Bu sayede sunucu kullanılamaz olsa bile, profilin abonelik durumuna ilişkin bilgilere önbellekten erişilebilir. Ancak, önbellekten doğrudan veri isteği yapılamadığını belirtmek gerekir. SDK, profille ilgili herhangi bir güncelleme veya değişiklik olup olmadığını kontrol etmek için sunucuyu her dakika periyodik olarak sorgular. Yeni işlemler veya diğer güncellemeler gibi herhangi bir değişiklik varsa, sunucuyla senkronize tutmak amacıyla önbelleğe alınan veriye gönderilir.