Kotlin Multiplatform 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 bilgisini kontrol etmeniz gerekir.

Bu makalede, kullanıcılara paywall mı yoksa premium içerik mi gösterileceğine karar vermek amacıyla 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 profildeki access level bilgisini kontrol edersiniz. İki seçeneğiniz var:

  • En güncel profil verilerine hemen ihtiyaç duyduğunuzda (örneğin uygulama açılışında) veya bir güncellemeye zorlamak istediğinizde getProfile çağırın.
  • Abonelik durumu değiştiğinde otomatik olarak güncellenen yerel bir kopya tutmak için otomatik profil güncellemelerini etkinleştirin.

Profili alma

Abonelik durumunu almanın en kolay yolu, getProfile metodunu kullanarak profile erişmektir:

Adapty.getProfile()
    .onSuccess { profile ->
        // check the access
    }
    .onError { error ->
        // handle the error
    }

Abonelik güncellemelerini dinleme

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

  1. Profil değişikliklerini dinlemek üzere Adapty.setOnProfileUpdatedListener() kullanın; kullanıcının abonelik durumu her değiştiğinde Adapty bu metodu otomatik olarak çağırır.
  2. Ek ağ istekleri yapmadan uygulama genelinde kullanabilmek için bu metod çağrıldığında güncel profil verilerini saklayın.
class SubscriptionManager {
    private var currentProfile: AdaptyProfile? = null
    
    init {
        // Listen for profile updates
        Adapty.setOnProfileUpdatedListener { profile ->
            currentProfile = profile
            // Update UI, unlock content, etc.
        }
    }
    
    // Use stored profile instead of calling getProfile()
    fun hasAccess(): Boolean {
        return currentProfile?.accessLevels?.get("YOUR_ACCESS_LEVEL")?.isActive == true
    }
}

Adapty, uygulama başladığında profil güncelleme dinleyicisini otomatik olarak çağırarak cihaz çevrimdışı olsa bile önbelleğe alınmış abonelik verilerini sağlar.

Profili paywall mantığıyla ilişkilendirme

Paywall gösterme veya ücretli özelliklere erişim verme 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 girilmesi veya belirli içeriklerin gösterilmesinden önce gibi senaryolar için kullanışlıdır.

private fun checkAccessAndShowPaywall() {
    // First, check if user has access
    Adapty.getProfile()
        .onSuccess { profile ->
            val hasAccess = profile.accessLevels?.get("YOUR_ACCESS_LEVEL")?.isActive == true
            
            if (!hasAccess) {
                // User doesn't have access, show paywall
                showPaywall()
            } else {
                // User has access, show premium content
                showPremiumContent()
            }
        }
        .onError { error ->
            // If we can't check access, show paywall as fallback
            showPaywall()
        }
}

private fun showPaywall() {
    // Get and display paywall using the KMP SDK
    Adapty.getPaywall("YOUR_PLACEMENT_ID")
        .onSuccess { paywall ->
            if (paywall.hasViewConfiguration) {
                val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
                paywallView?.present()
            } else {
                // Handle remote config paywall or show custom UI
                handleRemoteConfigPaywall(paywall)
            }
        }
        .onError { error ->
            // Handle paywall loading error
            showError("Unable to load paywall")
        }
}

private fun showPremiumContent() {
    // Show your premium content here
    // This is where you unlock paid features
}

Sonraki adımlar

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