Flow aksiyonlarına yanıt verme - Capacitor
Adapty Flow Builder veya Paywall Builder kullanarak flow’lar ya da paywall’lar oluşturuyorsanız, butonları doğru şekilde ayarlamak çok önemlidir:
- Builder’da bir buton ekleyin ve ona mevcut 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 mevcut eylemlerin kodunuzda nasıl işleneceğini gösterir.
Satın almalar, geri yüklemeler, flow ve paywall kapatma işlemleri ile URL açma otomatik olarak gerçekleştirilir. Varsayılan davranışlarını yapılandırabilir ya da özel eylemler için yanıtlar uygulayabilirsiniz.
Bir olay için handler ayarlamak, o olayın varsayılan davranışının tamamen yerine geçer. Ayarlamadığınız handler’lar varsayılan davranışlarını korur.
Flow ve paywall’ları kapatma
Flow veya paywall’ınıza kapatma düğmesi eklemek için:
- Builder’da bir düğme ekleyin ve ona Close eylemini atayın.
- Uygulama kodunuzda, flow veya paywall’ı kapatan
closeeylemi için bir işleyici uygulayın.
Capacitor SDK’da close eylemi, varsayılan olarak flow veya paywall’ı kapatmayı tetikler. Ancak gerekirse bu davranışı kodunuzda geçersiz kılabilirsiniz. Örneğin, bir flow’u kapatmak başka bir flow’un açılmasını tetikleyebilir.
const view = await createFlowView(flow);
const unsubscribe = await view.setEventHandlers({
onCloseButtonPress() {
return true; // allow the flow to close
},
});Android’de sistem Geri düğmesi ve geri hareketi ayrı bir onAndroidSystemBack olayını tetikler. SDK v4’te bu olay artık varsayılan olarak flow’u kapatmaz. Geri düğmesinin flow’u kapatmasını istiyorsanız handler’dan true döndürün:
const unsubscribe = await view.setEventHandlers({
onAndroidSystemBack() {
return true; // close the flow when the Back button is pressed
},
});Flow ve paywall’lardan URL açma
Bir grup bağlantı eklemek istiyorsanız (örneğin, kullanım koşulları ve satın alma iadesi), builder’da bir Link elementi ekleyin ve bunu Open URL aksiyonuyla butonlarla aynı şekilde ele alın.
Flow’unuzdan veya paywall’ınızdan bir bağlantı açan buton eklemek için (örneğin, Terms of use veya Privacy policy):
- Builder’da bir buton ekleyin, Open URL aksiyonunu atayın ve açmak istediğiniz URL’yi girin.
- Gerekirse, uygulama kodunuzda alınan URL’yi kendi yönteminizle açan
openUrlaksiyonu için bir işleyici uygulayın.
Capacitor SDK’da, bir URL’ye dokunulduğunda bu URL varsayılan olarak yerel tarayıcıda açılır: SDK, builder’da ayarladığınız Open in seçeneğini dikkate alarak adapty.openWebUrl({ url, openIn }) fonksiyonunu çağırır ve flow’u açık tutar. Ancak gerekirse bu davranışı kodunuzda geçersiz kılabilirsiniz.
const unsubscribe = await view.setEventHandlers({
onUrlPress(url) {
// Open the URL your own way, e.g. with the Capacitor Browser plugin
Browser.open({ url });
return false; // keep the flow open
},
});Özel işlemleri yönetme
Başka işlemleri yürüten bir buton eklemek için:
- Builder’da bir buton ekleyin, ona Custom işlemini atayın ve bir kimlik (ID) verin.
- Uygulama kodunuzda, oluşturduğunuz işlem kimliği için bir işleyici (handler) uygulayın.
Örneğin, farklı bir abonelik teklifleri setin ya da tek seferlik satın alımlarınız varsa, başka bir flow veya paywall gösterecek bir buton ekleyebilirsiniz:
const unsubscribe = await view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'openNewPaywall') {
// Display another flow or paywall
}
},
});Adapty paywall builder kullanarak paywall oluşturuyorsanız, düğmeleri doğru şekilde ayarlamak önemlidir:
- Paywall builder’a bir düğme ekleyin ve bu düğmeye mevcut bir action atayın ya da özel bir action ID oluşturun.
- Atadığınız her action’ı işlemek için uygulamanıza kod yazın.
Bu rehber, kodunuzda özel ve mevcut action’ları nasıl yöneteceğinizi göstermektedir.
Paywallları kapatma
Paywallınızı kapatacak bir buton eklemek için:
- Paywall builder’da bir buton ekleyin ve ona Close eylemini atayın.
- Uygulama kodunuzda, paywallı kapatan
closeeyleminin işleyicisini uygulayın.
Capacitor SDK’sında 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.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onCloseButtonPress() {
console.log('User closed paywall');
return true; // Allow the paywall to close
}
});Paywall’lardan 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 eylemiyle butonlarla aynı şekilde işleyin.
Paywall’ınızdan bir bağlantı açan bir buton eklemek için (ör. Terms of use veya Privacy policy):
- Paywall builder’da bir buton ekleyin, buna 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.
Capacitor SDK’da window.open eylemi varsayılan olarak URL’yi açar. Ancak gerekirse bu davranışı kodunuzda geçersiz kılabilirsiniz.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onUrlPress(url) {
window.open(url, '_blank');
return false; // Don't close the paywall
},
});Uygulamaya giriş yapma
Kullanıcıların uygulamanıza giriş yapmasını sağlayan bir buton eklemek için:
- Paywall builder’da bir buton ekleyin ve ona Login aksiyonunu atayın.
- Uygulama kodunuzda, kullanıcınızı tanımlayan
loginaksiyonu için bir handler uygulayın.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'login') {
// Navigate to login screen
console.log('User requested login');
}
}
});Özel işlemleri yönetme
Herhangi bir işlemi yöneten bir buton eklemek için:
- Paywall builder’da bir buton ekleyin, butona Custom eylemini atayın ve bir ID verin.
- Uygulama kodunuzda, oluşturduğunuz eylem ID’si için bir işleyici uygulayın.
Örneğin, başka bir abonelik teklifi setiniz veya tek seferlik satın almalarınız varsa, başka bir paywall görüntüleyen bir buton ekleyebilirsiniz:
const unsubscribe = view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'openNewPaywall') {
// Display another paywall
}
},
});