Flow ve paywallları görüntüleme - iOS
Bir flow veya paywall oluştturduysanız, bunu kullanıcıya göstermek için mobil uygulama kodunuzda ayrıca render etmenize gerek yok. Söz konusu flow veya paywall, içinde neyin gösterileceğini ve nasıl gösterileceğini zaten içeriyor.
Aşağıda kullanılan AdaptyUI.FlowConfiguration nesnesini edinmek için Flow ve paywallları getir sayfasına bakın.
SwiftUI’da flow ve paywallları sunma
Ekranda modal görünüm olarak göster
Bir flow veya paywall’ı cihaz ekranında modal görünüm olarak göstermek için SwiftUI’da .flow modifier’ını kullanın. En temel çağrı; isPresented, flowConfiguration ve beş zorunlu callback’i gerektirir:
.flow(
isPresented: $flowPresented,
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didFinishPurchase: { _, _ in /* dismiss, or do nothing to let the flow continue */ },
didFailPurchase: { _, _ in /* handle the error */ },
didFinishRestore: { _ in /* check access level and dismiss */ },
didFailRestore: { _ in /* handle the error */ },
didReceiveError: { _ in flowPresented = false }
)Daha fazla kontrol için, buton tıklamalarını yönetmek amacıyla didPerformAction gibi isteğe bağlı callback’ler ekleyin:
@State var flowPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the flow or paywall
var body: some View {
Text("Hello, AdaptyUI!")
.flow(
isPresented: $flowPresented,
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didPerformAction: { action in
switch action {
case .close:
flowPresented = false
default:
// Handle other actions
break
}
},
didFinishPurchase: { product, purchaseResult in /* dismiss, or do nothing to let the flow continue */ },
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didReceiveError: { error in flowPresented = false }
)
}(empty input — nothing to translate)
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| isPresented | zorunlu | Flow veya paywall ekranının görüntülenip görüntülenmediğini yöneten bir binding. |
| flowConfiguration | zorunlu | Flow veya paywallın görsel ayrıntılarını içeren bir AdaptyUI.FlowConfiguration nesnesi. AdaptyUI.getFlowConfiguration(forFlow:) metodunu kullanın. Daha fazla bilgi için Flow ve paywall’ları alma bölümüne bakın. |
| didFinishPurchase | zorunlu | Adapty.makePurchase() başarıyla tamamlandığında çağrılır. Flow otomatik olarak kapanmaz — burada sunum binding’inizi false olarak ayarlayabilir ya da hiçbir şey yapmayarak flow’un satın alma sonrasında devam etmesine izin verebilirsiniz. |
| didFailPurchase | zorunlu | Adapty.makePurchase() başarısız olduğunda çağrılır. |
| didFinishRestore | zorunlu | Adapty.restorePurchases() başarıyla tamamlandığında çağrılır. |
| didFailRestore | zorunlu | Adapty.restorePurchases() başarısız olduğunda çağrılır. |
| didReceiveError | zorunlu | Bir render hatası veya flow scriptinden kaynaklanan bir çalışma zamanı hatası için çağrılır (örneğin, bir JavaScript istisnası, AdaptyUIError kodu 4105). Render hataları için Adapty Destek ile iletişime geçin. |
| fullScreen | isteğe bağlı | Flow veya paywallın tam ekran modunda mı yoksa sayfa olarak mı görüneceğini belirler. Varsayılan değer true’dur. |
| didAppear | isteğe bağlı | Flow veya paywall görünümü sunulduğunda çağrılır. |
| didDisappear | isteğe bağlı | Flow veya paywall görünümü kapatıldığında çağrılır. |
| didPerformAction | isteğe bağlı | Kullanıcı bir butona tıkladığında çağrılır. close ve openURL olmak üzere iki action ID önceden tanımlanmıştır; diğerleri özelleştirilebilir ve builder’da ayarlanabilir. |
| didSelectProduct | isteğe bağlı | Kullanıcı veya sistem tarafından satın almak üzere bir ürün seçildiğinde çağrılır. |
| didStartPurchase | isteğe bağlı | Kullanıcı satın alma sürecini başlattığında çağrılır. |
| didFinishWebPaymentNavigation | isteğe bağlı | Web ödeme navigasyonu tamamlandığında çağrılır. |
| didStartRestore | isteğe bağlı | Kullanıcı geri yükleme sürecini başlattığında çağrılır. |
| didFailLoadingProducts | isteğe bağlı | Ürün yükleme sırasında hata oluştuğunda çağrılır. Yeniden yüklemeyi denemek için true döndürün. |
| didPartiallyLoadProducts | isteğe bağlı | Ürünler kısmen yüklendiğinde çağrılır. |
| showAlertItem | isteğe bağlı | Flow veya paywallın üzerinde uyarı öğelerinin görüntülenmesini yöneten bir binding. |
| showAlertBuilder | isteğe bağlı | Uyarı görünümünü render etmek için kullanılan bir fonksiyon. |
| placeholderBuilder | isteğe bağlı | Flow veya paywall yüklenirken placeholder görünümünü render etmek için kullanılan bir fonksiyon. Varsayılan olarak ProgressView kullanılır. |
| iOS olaylarını işleme konusundaki parametreler hakkında daha fazla bilgi için iOS - Olayları İşleme konusuna bakın. |
Modal olmayan görünüm olarak sunma
Flow’ları ve paywall’ları uygulamanızın navigasyon akışında navigasyon hedefleri veya satır içi görünümler olarak da sunabilirsiniz. SwiftUI görünümlerinizde doğrudan AdaptyFlowView kullanın:
AdaptyFlowView(
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didFinishPurchase: { product, purchaseResult in
// Dismiss the view, or do nothing to let the flow continue
},
didFailPurchase: { product, error in
// Handle purchase failure
},
didFinishRestore: { profile in
// Handle successful restore
},
didFailRestore: { error in
// Handle restore failure
},
didReceiveError: { error in
// Handle the error (rendering or JS exception from the flow script).
}
)Flow’ları ve paywallları UIKit’te sunma
Flow’u veya paywall’ı cihaz ekranında görüntülemek için şu adımları izleyin:
-
Görüntülemek istediğiniz görsel flow’u
AdaptyUI.flowController(with:delegate:)metodunu kullanarak başlatın:import AdaptyUI let visualFlow = try AdaptyUI.flowController( with: <AdaptyUI.FlowConfiguration>, delegate: <AdaptyFlowControllerDelegate> )İstek parametreleri:
Parametre Zorunluluk Açıklama flowConfiguration zorunlu Akış veya paywallın görsel detaylarını içeren bir AdaptyUI.FlowConfigurationnesnesi.AdaptyUI.getFlowConfiguration(forFlow:)metodunu kullanın. Daha fazla bilgi için Flow ve paywallları alma konusuna bakın.delegate zorunlu Flow ve paywall olaylarını dinlemek için kullanılan AdaptyFlowControllerDelegate. Daha fazla bilgi için Flow & paywall olaylarını yönetme konusuna bakın.Döndürür:
Nesne Açıklama AdaptyFlowController İstenen flow veya paywall ekranını temsil eden bir nesne. -
Nesne başarıyla oluşturulduktan sonra cihazın ekranında görüntüleyebilirsiniz:
present(visualFlow, animated: true)
Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğine dair gerçek bir örnek görmek ister misiniz? Tam kurulumu, paywall görüntüleme, satın alma yapma ve diğer temel işlevleri içeren örnek uygulamalarımıza göz atın.
Paywall Builder ile bir paywall özelleştirdiyseniz, onu kullanıcıya göstermek için mobil uygulama kodunuzda ayrıca render etmeniz gerekmez. Böyle bir paywall, hem ne gösterileceğini hem de nasıl gösterileceğini içerir.
AdaptyUI.PaywallConfiguration nesnesini almak için bkz. Paywall Builder paywalllarını ve yapılandırmalarını getirme.
SwiftUI’da paywallları sunma
Cihaz ekranında modal görünüm olarak sunma
Görsel paywallı cihaz ekranında modal görünüm olarak göstermek için SwiftUI’da .paywall modifier’ını kullanın:
@State var paywallPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the paywall
var body: some View {
Text("Hello, AdaptyUI!")
.paywall(
isPresented: $paywallPresented,
paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
didPerformAction: { action in
switch action {
case .close:
paywallPresented = false
default:
// Handle other actions
break
}
},
didFinishPurchase: { product, profile in paywallPresented = false },
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in paywallPresented = false }
)
}Parameters:
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| isPresented | zorunlu | Paywall ekranının görüntülenip görüntülenmeyeceğini yöneten bir binding. |
| paywallConfiguration | zorunlu | Paywallın görsel ayrıntılarını içeren bir AdaptyUI.PaywallConfiguration nesnesi. AdaptyUI.paywallConfiguration(for:products:viewConfiguration:observerModeResolver:tagResolver:timerResolver:) metodunu kullanın. Daha fazla bilgi için Paywall Builder paywalllarını ve yapılandırmalarını getirme konusuna bakın. |
| didFailPurchase | zorunlu | Adapty.makePurchase() başarısız olduğunda çağrılır. |
| didFinishRestore | zorunlu | Adapty.restorePurchases() başarıyla tamamlandığında çağrılır. |
| didFailRestore | zorunlu | Adapty.restorePurchases() başarısız olduğunda çağrılır. |
| didFailRendering | zorunlu | Arayüz oluşturulurken bir hata meydana gelirse çağrılır. Bu durumda Adapty Destek ile iletişime geçin. |
| fullScreen | isteğe bağlı | Paywallın tam ekran modunda mı yoksa modal olarak mı görüneceğini belirler. Varsayılan değer true’dur. |
| didAppear | isteğe bağlı | Paywall görünümü sunulduğunda çağrılır. |
| didDisappear | isteğe bağlı | Paywall görünümü kapatıldığında çağrılır. |
| didPerformAction | isteğe bağlı | Kullanıcı bir düğmeye tıkladığında çağrılır. Farklı düğmelerin farklı aksiyon ID’leri vardır. close ve openURL olmak üzere iki aksiyon ID’si önceden tanımlıdır; diğerleri özeldir ve builder’da ayarlanabilir. |
| didSelectProduct | isteğe bağlı | Bir ürün satın almak üzere seçildiyse (kullanıcı veya sistem tarafından) bu callback çağrılır. |
| didStartPurchase | isteğe bağlı | Kullanıcı satın alma işlemine başladığında çağrılır. |
| didFinishPurchase | isteğe bağlı | Adapty.makePurchase() başarıyla tamamlandığında çağrılır. |
| didFinishWebPaymentNavigation | isteğe bağlı | Web ödeme navigasyonu tamamlandığında çağrılır. |
| didStartRestore | isteğe bağlı | Kullanıcı geri yükleme işlemine başladığında çağrılır. |
| didFailLoadingProducts | isteğe bağlı | Ürün yükleme sırasında hata oluştuğunda çağrılır. Yüklemeyi yeniden denemek için true döndürün. |
| didPartiallyLoadProducts | isteğe bağlı | Ürünler kısmen yüklendiğinde çağrılır. |
| showAlertItem | isteğe bağlı | Paywallın üzerindeki uyarı öğelerinin görüntülenmesini yöneten bir binding. |
| showAlertBuilder | isteğe bağlı | Uyarı görünümünü oluşturmaya yarayan bir fonksiyon. |
| placeholderBuilder | isteğe bağlı | Paywall yüklenirken yer tutucu görünümünü oluşturmaya yarayan bir fonksiyon. |
| iOS olaylarını işleme hakkında parametreler için iOS - Olayları işleme konusuna bakın. |
Kalıcı olmayan görünüm olarak sunma
Paywall’ları uygulamanızın navigasyon akışında bir navigasyon hedefi veya satır içi görünüm olarak da sunabilirsiniz. SwiftUI görünümlerinizde doğrudan AdaptyPaywallView kullanın:
AdaptyPaywallView(
paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
didFailPurchase: { product, error in
// Handle purchase failure
},
didFinishRestore: { profile in
// Handle successful restore
},
didFailRestore: { error in
// Handle restore failure
},
didFailRendering: { error in
// Handle rendering error
}
)UIKit’te paywall’ları sunma
Paywall’ı cihaz ekranında görüntülemek için şunları yapın:
-
Görüntülemek istediğiniz paywall’ı
.paywallController(for:products:viewConfiguration:delegate:)metodunu kullanarak başlatın:import AdaptyUI let visualPaywall = AdaptyUI.paywallController( with: <paywall configuration object>, delegate: <AdaptyPaywallControllerDelegate> )İstek parametreleri:
Parametre Zorunluluk Açıklama paywall configuration zorunlu Paywallın görsel ayrıntılarını içeren bir AdaptyUI.PaywallConfigurationnesnesi.AdaptyUI.getPaywallConfiguration(forPaywall:locale:)metodunu kullanın. Daha fazla bilgi için Paywall Builder paywalllarını ve yapılandırmalarını getirme konusuna bakın.delegate zorunlu Paywall olaylarını dinlemek için bir AdaptyPaywallControllerDelegate. Daha fazla bilgi için Paywall olaylarını yönetme konusuna bakın.
Döner:
| Nesne | Açıklama |
|---|---|
| AdaptyPaywallController | İstenen paywall ekranını temsil eden bir nesne |
-
Nesne başarıyla oluşturulduktan sonra cihaz ekranında gösterebilirsiniz:
present(visualPaywall, animated: true)
Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğini gerçek bir örnekle görmek ister misiniz? Kurulumun tamamını, paywall gösterimi, satın alma işlemleri ve diğer temel işlevler dahil olmak üzere ele alan örnek uygulamalarımıza göz atın.