Flow aksiyonlarına yanıt verme - iOS
Adapty Flow & Paywall Builder ile flow oluşturuyorsanız, butonları düzgün şekilde yapılandırmak çok önemlidir:
- Builder’da bir düğme ekleyin ve ona önceden tanımlanmış bir eylem atayın ya da özel bir eylem ID’si oluşturun.
- Atadığınız her eylemi işlemek için uygulamanıza kod yazın.
Bu kılavuz, özel ve önceden tanımlanmış eylemlerin kodunuzda nasıl işleneceğini gösterir.
Yalnızca flow/paywall kapatma işlemleri ve URL açma otomatik olarak işlenir. Diğer tüm düğme eylemleri, uygulama kodunda uygun bir yanıt uygulaması gerektirir.
iOS SDK, AdaptySystemRequestsHandler aracılığıyla bildirim izinleri veya kamera erişimi gibi sistem izin isteklerine yanıt verebilir. Flow’lar henüz bu tür istekleri tetiklemiyor, dolayısıyla şimdilik bunları ele almanıza gerek yok.
Flow ve paywallları kapatma
Flow veya paywallınıza bir kapatma düğmesi eklemek için:
- Builder’da bir düğme ekleyin ve Close eylemini atayın.
- Uygulama kodunuzda
closeeylemi için bir handler uygulayın.
iOS SDK’da close eylemi, flow veya paywall’ı varsayılan olarak kapatır. Ancak gerekirse bu davranışı kodunuzda geçersiz kılabilirsiniz. Örneğin, bir flow’u kapatmak başka bir flow’u açmayı tetikleyebilir.
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case .close:
flowPresented = false // dismiss the flow or paywall
default:
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 }
)Flow ve paywall’lardan URL açma
Bir grup bağlantı eklemek istiyorsanız (örneğin, kullanım koşulları ve satın alma geri yükleme), builder’da bir Link öğesi ekleyin ve bunu Open URL eylemiyle düğmelerle aynı şekilde ele alın.
Flow veya paywall’ınızdan bağlantı açan bir düğme eklemek için (örneğin, Terms of use veya Privacy policy):
- Builder’da bir düğme ekleyin, Open URL eylemini atayın ve açmak istediğiniz URL’yi girin.
- Uygulama kodunuzda, alınan URL’yi bir tarayıcıda açan
openURLeylemi için bir işleyici uygulayın.
iOS SDK’da openURL eylemi, varsayılan olarak URL’yi açmayı tetikler. Ancak gerekirse bu davranışı kodunuzda geçersiz kılabilirsiniz.
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
default:
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 }
)Özel eylemleri yönetme
Başka eylemleri yönetecek bir düğme eklemek için:
- Oluşturucuda bir düğme ekleyin, Custom eylemini atayın ve bir ID belirleyin.
- Uygulama kodunuzda, oluşturduğunuz eylem ID’si için bir işleyici uygulayın.
Örneğin, başka bir abonelik teklifi seti ya da tek seferlik satın alma seçenekleriniz varsa, başka bir flow veya paywall açacak bir düğme ekleyebilirsiniz:
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case let .custom(id):
if id == "openNewPaywall" {
// Display another flow or paywall
}
default:
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 }
)Adapty paywall builder kullanarak paywall oluşturuyorsanız, düğmeleri doğru şekilde ayarlamak kritik öneme sahiptir:
- Eski Paywall Builder’da bir düğme ekleyin ve bu düğmeye mevcut bir eylem veya özel bir eylem ID’si atayın.
- Atadığınız her eylemi işlemek için uygulamanıza kod yazın.
Bu kılavuz, kodunuzda özel ve mevcut eylemlerin nasıl işleneceğini gösterir.
Yalnızca satın almalar, geri yüklemeler, paywall kapatmaları ve URL açma işlemleri otomatik olarak işlenir. Diğer tüm düğme eylemleri, uygulama kodunda uygun bir yanıt uygulaması gerektirir.
Paywallları kapatma
Paywallınızı kapatacak bir düğme eklemek için:
- Paywall builder’da bir düğme ekleyin ve Close eylemini atayın.
- Uygulama kodunuzda, paywall’ı kapatan
closeeylemi için bir işleyici uygulayın.
iOS SDK’da close eylemi, varsayılan olarak paywall’ı kapatmayı tetikler. Ancak gerekirse bu davranışı kodunuzda geçersiz kılabilirsiniz. Örneğin, bir paywall’ı kapatmak başka bir paywall’ın açılmasını tetikleyebilir.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .close:
controller.dismiss(animated: true) // default behavior
break
}
}Paywalllardan URL açma
Bir grup bağlantı eklemek istiyorsanız (ör. kullanım koşulları ve satın alma geri yükleme), paywall builder’da bir Link öğesi ekleyin ve bunu Open URL eylemine sahip düğmelerle aynı şekilde yönetin.
Paywallınızdan bağlantı açan bir düğme eklemek için (ör. Kullanım Koşulları veya Gizlilik Politikası):
- Paywall builder’da bir düğme ekleyin, Open URL eylemini atayın ve açmak istediğiniz URL’yi girin.
- Uygulama kodunuzda, alınan URL’yi tarayıcıda açan
openUrleylemi için bir işleyici uygulayın.
iOS SDK’da openUrl eylemi, varsayılan olarak URL’yi açmayı tetikler. Ancak gerekirse bu davranışı kodunuzda geçersiz kılabilirsiniz.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
break
}
}Uygulamaya giriş yapma
Kullanıcıların uygulamanıza giriş yapmasını sağlayan bir düğme eklemek için:
- Paywall builder’da bir düğme ekleyin ve Login eylemini atayın.
- Uygulama kodunuzda, kullanıcınızı tanımlayan
logineylemi için bir işleyici uygulayın.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .login:
// Show a login screen
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController")
controller.present(loginVC, animated: true)
}
}Özel eylemleri yönetme
Diğer eylemleri yöneten bir düğme eklemek için:
- Paywall builder’da bir düğme ekleyin, Custom eylemini atayın ve bir ID belirleyin.
- Uygulama kodunuzda, oluşturduğunuz eylem ID’si için bir işleyici uygulayın.
Örneğin, başka bir abonelik teklifi veya tek seferlik satın alma seçeneğiniz varsa başka bir paywall görüntüleyen bir düğme ekleyebilirsiniz:
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .custom(id):
if id == "openNewPaywall" {
// Başka bir paywall göster
}
}
break
}
}