Observer modunda flow'ları sunma - Kotlin Multiplatform
Observer modu kullanıyorsanız, kendi satın alma mantığınızdan siz sorumlusunuz. Ancak paywall arayüzünü Flow & Paywall Builder’a devredebilirsiniz.
Ekranı builder’da tasarlayın, Adapty SDK onu native olarak render eder. Metin, düzen ve fiyatlandırmayı istediğiniz zaman güncelleyin, uygulama güncellemesine gerek yok.
Bu kılavuz, bir flow’u nasıl sunacağınızı ve satın alma callback’lerini nasıl yöneteceğinizi gösterir. Adapty satın alma işlemlerini sizin için tamamlıyorsa bunun yerine Flow’ları ve paywall’ları görüntüleme bölümüne bakın.
Başlamadan önce
You need:
- Adapty Kotlin Multiplatform SDK 4.0 (beta) veya üzeri: Daha eski sürümler flow’ları render edemez. Mevcut bir uygulamayı taşımak için migration rehberine bakın.
- Yapılandırma builder’ında
withObserverMode(true)çağrısı: Kotlin Multiplatform SDK kurulum rehberine bakın. - İlk mağaza entegrasyonu: Adapty’yi App Store ile ve Google Play ile kurun.
- Ürünleri olan yayınlanmış bir flow: Flow & Paywall Builder’da oluşturun ve ürünleri atayın.
- Bir flow placement’ı: Placement oluşturun ve flow’unuzu atayın.
- Uygulamanızda alınan flow: Sunmadan önce flow’u ve yapılandırmasını alın.
Uygulama
Observer modunda SDK, sizin adınıza satın alma işlemi gerçekleştirmez. Kullanıcı, Adapty tarafından render edilen bir flow içindeki satın alma veya geri yükleme düğmesine dokunduğunda, SDK AdaptyUIObserverModeResolver metodunuzu çağırır — satın alma veya geri yükleme işlemini burada kendi kodunuzla gerçekleştirin.
-
AdaptyUIObserverModeResolverarayüzünü uygulayın:import com.adapty.kmp.AdaptyUIObserverModeResolver import com.adapty.kmp.models.AdaptyPaywallProduct import com.adapty.kmp.models.AdaptyUIFlowView class MyObserverModeResolver : AdaptyUIObserverModeResolver { override fun observerModeDidInitiatePurchase( view: AdaptyUIFlowView, product: AdaptyPaywallProduct, onStartPurchase: () -> Unit, onFinishPurchase: () -> Unit ) { onStartPurchase() // the view shows its loading indicator // make the purchase with your own code, // then report the transaction to Adapty and call: onFinishPurchase() // the view hides the loading indicator } override fun observerModeDidInitiateRestore( view: AdaptyUIFlowView, onStartRestore: () -> Unit, onFinishRestore: () -> Unit ) { onStartRestore() // restore purchases with your own code, then: onFinishRestore() } }
observerModeDidInitiatePurchase metodu kullanıcının bir satın alma başlattığını, observerModeDidInitiateRestore ise kullanıcının geri yükleme başlattığını size bildirir. Buna karşılık olarak kendi özel satın alma veya geri yükleme flow’unuzu tetikleyin.
Ayrıca, satın alma veya geri yükleme sürecini AdaptyUI’ya bildirmek için aşağıdaki callback’leri çağırmayı unutmayın. Bu, yükleyiciyi göstermek gibi düzgün flow davranışı için gereklidir:
| Callback | Description |
|---|---|
| onStartPurchase() | Satın alma başladığında AdaptyUI’ı bilgilendirmek için bu callback çağrılmalıdır. |
| onFinishPurchase() | Satın alma tamamlandığında AdaptyUI’ı bilgilendirmek için bu callback çağrılmalıdır. |
| onStartRestore() | Geri yükleme başladığında AdaptyUI’ı bilgilendirmek için bu callback çağrılmalıdır. |
| onFinishRestore() | Geri yükleme tamamlandığında AdaptyUI’ı bilgilendirmek için bu callback çağrılmalıdır. |
Flow, kodunuz çalışırken açık kalır — başarılı bir satın alma veya geri yükleme işleminden sonra onu kendiniz kapatmanız gerekir.
-
Herhangi bir ekran göstermeden önce resolver’ı kaydedin:
import com.adapty.kmp.AdaptyUI AdaptyUI.setObserverModeResolver(MyObserverModeResolver())Kayıtlı bir resolver olmadan, flow görünümünün satın almayı kodunuza iletmenin bir yolu yoktur ve kullanıcı satın alma düğmesine bastığında hiçbir şey olmaz.
-
Flow view’u her zamanki gibi oluşturun ve gösterin: flow’u çekip view’unu oluşturun, ardından gösterin. Ekstra parametre gerekmez — resolver kaydedildikten sonra, Adapty tarafından render edilen her flow, satın alma ve restore işlemlerini onun üzerinden yönlendirir.
İşlemi raporlamayı ve paywall ile ilişkilendirmeyi unutmayın. Aksi takdirde Adapty işlemi tanımayacak ve satın almanın kaynak paywall’ını belirleyemeyecektir.