Capacitor SDK'da Paywall Builder paywalllarını gösterme
Paywall Builder kullanarak bir paywall özelleştirdiyseniz, bunu kullanıcıya göstermek için mobil uygulama kodunuzda ayrıca render etmenize gerek yoktur. Bu tür bir paywall, hem paywall içinde ne gösterileceğini hem de nasıl gösterileceğini içerir.
Bu kılavuz yalnızca Paywall Builder paywallları içindir. Paywallların gösterilme süreci remote config paywalllarında farklıdır. Remote config paywalllarını göstermek için bkz. Remote config ile tasarlanan paywallı render etme.
Bir paywall görüntülemek için createPaywallView metoduyla oluşturulan view üzerinde view.present() metodunu kullanın. Her view yalnızca bir kez kullanılabilir. Paywallı tekrar görüntülemeniz gerekiyorsa yeni bir view örneği oluşturmak için createPaywallView’ı bir kez daha çağırın.
view’ı yeniden oluşturmadan tekrar kullanmak hataya neden olabilir.
const view = await createPaywallView(paywall);
view.setEventHandlers({
onUrlPress(url) {
window.open(url, '_blank');
return false;
},
});
try {
await view.present();
} catch (error) {
// handle the error
}
Geliştirici tanımlı zamanlayıcı kullanma
Mobil uygulamanızda geliştirici tanımlı zamanlayıcıları kullanmak için timerId değerini, bu örnekte CUSTOM_TIMER_NY’yi kullanın; bu, Adapty kontrol panelinde ayarladığınız geliştirici tanımlı zamanlayıcının Timer ID’sidir. Bu sayede uygulamanız zamanlayıcıyı doğru değerle (örneğin, zamanlayıcının bitiş zamanı olan Yılbaşı gününden mevcut zamanın çıkarılmasıyla hesaplanan 13d 09h 03m 34s gibi) dinamik olarak günceller.
const customTimers = { 'CUSTOM_TIMER_NY': new Date(2025, 0, 1) };
const view = await createPaywallView(paywall, { customTimers });
Bu örnekte CUSTOM_TIMER_NY, Adapty kontrol panelinde ayarladığınız geliştirici tanımlı zamanlayıcının Timer ID’sidir. Zamanlayıcı, uygulamanızın zamanlayıcıyı doğru değerle (örneğin, zamanlayıcının bitiş zamanı olan Yılbaşı gününden mevcut zamanın çıkarılmasıyla hesaplanan 13d 09h 03m 34s gibi) dinamik olarak güncellemesini sağlar.
İletişim kutusu gösterme
Android’de bir paywall görünümü sunulduğunda, yerel uyarı iletişim kutuları yerine bu metodu kullanın. Android’de normal uyarılar paywall görünümünün arkasında göründüğünden kullanıcılar tarafından görülemez. Bu metod, tüm platformlarda iletişim kutusunun paywall’ın üzerinde doğru şekilde gösterilmesini sağlar.
try {
const action = await view.showDialog({
title: 'Close paywall?',
content: 'You will lose access to exclusive offers.',
primaryActionTitle: 'Stay',
secondaryActionTitle: 'Close',
});
if (action === 'secondary') {
// User confirmed - close the paywall
await view.dismiss();
}
// If primary - do nothing, user stays
} catch (error) {
// handle error
}
iOS sunum stilini yapılandırma
present() metoduna iosPresentationStyle parametresini geçirerek paywallın iOS’ta nasıl sunulacağını yapılandırın. Parametre 'full_screen' (varsayılan) veya 'page_sheet' değerlerini kabul eder.
await view.present({ iosPresentationStyle: 'page_sheet' });