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:
- 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. - 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.