React Native SDK'da abonelik durumunu kontrol etme

Kullanıcıların ücretli içeriğe erişip erişemeyeceğine veya bir paywall görmesi gerekip gerekmediğine karar vermek için profildeki access level değerini kontrol etmeniz gerekir.

Bu makalede, kullanıcılara paywall mı göstereceğinize yoksa ücretli özelliklere erişim mi tanıyacağınıza karar vermek için profil durumuna nasıl erişeceğiniz anlatılmaktadır.

Abonelik durumunu alma

Kullanıcıya paywall mı yoksa ücretli içerik mi göstereceğinize karar verirken profilindeki access level değerini kontrol edersiniz. İki seçeneğiniz var:

  • Anlık olarak en güncel profil verisine ihtiyaç duyduğunuzda (örneğin uygulama açılışında) veya güncellemeyi zorlamak istediğinizde getProfile çağrısı yapın.
  • Abonelik durumu değiştiğinde otomatik olarak yenilenen yerel bir kopya tutmak için otomatik profil güncellemelerini ayarlayın.

Profili alma

Abonelik durumunu almanın en kolay yolu, profile erişmek için getProfile metodunu kullanmaktır:

try {
    const profile = await adapty.getProfile();
} catch (error) {
  // handle the error
}

Abonelik güncellemelerini dinleme

Uygulamanızda profil güncellemelerini otomatik olarak almak için:

  1. Profil değişikliklerini dinlemek amacıyla adapty.addEventListener('onLatestProfileLoad') kullanın. Adapty, kullanıcının abonelik durumu her değiştiğinde bu metodu otomatik olarak çağırır.
  2. Bu metot çağrıldığında güncellenen profil verilerini saklayın; böylece ek ağ istekleri yapmadan uygulama genelinde kullanabilirsiniz.
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, uygulamanız başladığında onLatestProfileLoad olay dinleyicisini otomatik olarak çağırır ve cihaz çevrimdışı olsa bile önbelleğe alınmış abonelik verilerini sağlar.

Profili paywall mantığıyla bağlama

Paywall gösterme veya ücretli özelliklere erişim tanıma konusunda anlık kararlar vermeniz gerektiğinde kullanıcının profilini doğrudan kontrol edebilirsiniz. Bu yaklaşım; uygulama açılışı, premium bölümlere girilmesi veya belirli içerikler gösterilmeden önce gibi senaryolar için kullanışlıdır.

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);
  }
};

Sonraki adımlar

Abonelik durumunu nasıl takip edeceğinizi öğrendiğinize göre, kullanıcıların satın aldıkları şeylere erişebildiğinden emin olmak için kullanıcı profilleriyle çalışmayı öğrenin.