Flutter SDK'da abonelik durumunu kontrol etme

Kullanıcıların ücretli içeriğe erişip erişemeyeceğine ya da bir paywall görüp görmeyeceğine karar vermek için profildeki access level değerini kontrol etmeniz gerekir.

Bu makalede, kullanıcılara paywall mı göstermeniz gerektiğini yoksa ücretli özelliklere erişim mi tanımanız gerektiğini belirlemek için profil durumuna nasıl erişeceğinizi öğreneceksiniz.

Abonelik durumunu alma

Bir 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 verilerine ihtiyaç duyduğunuzda (örneğin uygulama açılışında) veya güncellemeyi zorlamak istediğinizde getProfile çağırın.
  • Abonelik durumu her değiştiğinde otomatik olarak güncellenen yerel bir kopya tutmak için otomatik profil güncellemeleri ayarlayın.

Profil alma

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

try {
  final profile = await Adapty().getProfile();
  // check the access
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}

Abonelik güncellemelerini dinleme

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

  1. Profil değişikliklerini dinlemek üzere Adapty().didUpdateProfileStream.listen() kullanın — kullanıcının abonelik durumu her değiştiğinde Adapty bu metodu otomatik olarak çağırır.
  2. Bu metot çağrıldığında güncel profil verilerini saklayın; böylece ek ağ isteği yapmadan uygulama genelinde kullanabilirsiniz.
class SubscriptionManager {
  AdaptyProfile? _currentProfile;
  
  SubscriptionManager() {
    // Listen for profile updates
    Adapty().didUpdateProfileStream.listen((profile) {
      _currentProfile = profile;
      // Update UI, unlock content, etc.
    });
  }
  
  // Use stored profile instead of calling getProfile()
  bool hasAccess() {
    return _currentProfile?.accessLevels['premium']?.isActive ?? false;
  }
}

Adapty, uygulamanız başladığında profil güncelleme akışı 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 almanız gerektiğinde kullanıcının profilini doğrudan kontrol edebilirsiniz. Bu yaklaşım; uygulama açılışı, premium bölümlere girerken veya belirli içerikleri görüntülemeden önce gibi senaryolar için kullanışlıdır.

Future<bool> _checkAccessLevel() async {
  try {
    final profile = await Adapty().getProfile();
    return profile.accessLevels['YOUR_ACCESS_LEVEL']?.isActive ?? false;
  } catch (e) {
    print('Error checking access level: $e');
    return false; // Show paywall if access check fails
  }
}

Future<void> _initializePaywall() async {
  await _loadPaywall();
  
  final hasAccess = await _checkAccessLevel();
  if (!hasAccess) {
    // Show paywall if no access
  }
}

Sonraki adımlar

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