Flutter SDK'da onboarding sunma
Builder ile özelleştirilmiş bir onboarding oluşturduysanız, bunu kullanıcıya göstermek için Flutter uygulama kodunuzda ayrıca render etmenize gerek yoktur. Bu tür bir onboarding, hem ne gösterileceğini hem de nasıl gösterileceğini içerir.
Başlamadan önce şunları sağladığınızdan emin olun:
- Adapty Flutter SDK 3.8.0 veya sonrasını yüklemiş olun.
- Bir onboarding oluşturmuş olun.
- Onboarding’i bir placement’a eklemiş olun.
Adapty Flutter SDK, onboarding’leri sunmak için iki yol sunar:
-
Bağımsız ekran
-
Gömülü widget
Bağımsız ekran olarak göster
Bir onboarding’i bağımsız ekran olarak göstermek için, createOnboardingView metodu ile oluşturulan onboardingView üzerinde onboardingView.present() metodunu kullanın. Her view yalnızca bir kez kullanılabilir. Onboarding’i tekrar göstermeniz gerekiyorsa, yeni bir onboardingView örneği oluşturmak için createOnboardingView metodunu bir kez daha çağırın.
Aynı onboardingView’ı yeniden oluşturmadan tekrar kullanmak AdaptyUIError.viewAlreadyPresented hatasına yol açabilir.
try {
await onboardingView.present();
} on AdaptyError catch (e) {
// handle the error
} catch (e) {
// handle the error
}
Onboarding’i kapatma
Onboarding’i programatik olarak kapatmanız gerektiğinde dismiss() metodunu kullanın:
try {
await onboardingView.dismiss();
} on AdaptyError catch (e) {
// handle the error
} catch (e) {
// handle the error
}
iOS sunum stilini yapılandırma
present() metoduna iosPresentationStyle parametresini geçirerek onboarding’in iOS’ta nasıl sunulacağını yapılandırın. Parametre AdaptyUIIOSPresentationStyle.fullScreen (varsayılan) veya AdaptyUIIOSPresentationStyle.pageSheet değerlerini kabul eder.
try {
await onboardingView.present(iosPresentationStyle: AdaptyUIIOSPresentationStyle.pageSheet);
} on AdaptyError catch (e) {
// handle the error
} catch (e) {
// handle the error
}
Widget hiyerarşisine yerleştirme
Bir onboarding’i mevcut widget ağacınıza gömmek için AdaptyUIOnboardingPlatformView widget’ını doğrudan Flutter widget hiyerarşinizde kullanın.
AdaptyUIOnboardingPlatformView(
onboarding: onboarding, // The onboarding object you fetched
onDidFinishLoading: (meta) {
},
onDidFailWithError: (error) {
},
onCloseAction: (meta, actionId) {
},
onPaywallAction: (meta, actionId) {
},
onCustomAction: (meta, actionId) {
},
onStateUpdatedAction: (meta, elementId, params) {
},
onAnalyticsEvent: (meta, event) {
},
)
Android platform view’ın çalışması için MainActivity dosyanızın FlutterFragmentActivity’yi extend ettiğinden emin olun:
class MainActivity : FlutterFragmentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
} Onboarding sırasında yükleme ekranı
Bir onboarding sunarken, splash ekranınız ile onboarding arasında, arka plandaki görünüm başlatılırken kısa bir yükleme ekranı fark edebilirsiniz. Bunu ihtiyaçlarınıza göre farklı şekillerde ele alabilirsiniz.
onDidFinishLoading kullanarak splash ekranını kontrol etme
Bu yaklaşım yalnızca onboarding’i bir widget olarak gömdüğünüzde kullanılabilir. Bağımsız ekran sunumunda kullanılamaz.
Önerilen platformlar arası yaklaşım, onboarding tam yüklenene kadar splash ekranınızı veya özel katmanınızı görünür tutmak, ardından bunu elle gizlemektir.
Gömülü widget kullanırken, üzerine kendi widget’ınızı yerleştirin ve onDidFinishLoading tetiklendiğinde katmanı gizleyin:
AdaptyUIOnboardingPlatformView(
onboarding: onboarding,
onDidFinishLoading: (meta) {
// Hide your custom splash screen or overlay here
},
// ... other callbacks
)
Yerel yükleyiciyi özelleştirme
Bu yaklaşım platforma özgüdür ve yerel UI kodunun bakımını gerektirir. Uygulamanızda zaten ayrı yerel katmanlar kullanmıyorsanız önerilmez.
Varsayılan yükleyiciyi özelleştirmeniz gerekiyorsa platforma özgü layout’larla değiştirebilirsiniz. Bu yaklaşım Android ve iOS için ayrı uygulamalar gerektirir:
- iOS: Xcode projenize
AdaptyOnboardingPlaceholderView.xibekleyin - Android:
res/layoutklasöründeadapty_onboarding_placeholder_view.xmloluşturun ve burada bir yer tutucu tanımlayın
Onboardinglerde linklerin nasıl açılacağını özelleştirme
Onboardinglerde linklerin nasıl açılacağını özelleştirme, Adapty SDK v3.15.1 sürümünden itibaren desteklenmektedir.
Varsayılan olarak, onboardinglerdeki linkler uygulama içi bir tarayıcıda açılır. Bu, web sayfalarını uygulamanız içinde göstererek kullanıcıların uygulama değiştirmeden görüntülemesine olanak tanır ve sorunsuz bir kullanıcı deneyimi sağlar.
Linkleri bunun yerine harici bir tarayıcıda açmayı tercih ediyorsanız, externalUrlsPresentation parametresini AdaptyWebPresentation.externalBrowser olarak ayarlayarak bu davranışı özelleştirebilirsiniz:
Güvenli alan doldurmalarını devre dışı bırakma (Android)
Varsayılan olarak, Android cihazlarda onboarding görünümü; durum çubuğu ve gezinme çubuğu gibi sistem UI öğelerinden kaçınmak için güvenli alan dolgularını otomatik olarak uygular. Ancak bu davranışı devre dışı bırakmak ve düzen üzerinde tam kontrol sahibi olmak istiyorsanız, uygulamanıza bir boolean kaynağı ekleyerek bunu yapabilirsiniz:
-
android/app/src/main/res/valuesdizinine gidin. Eğerbools.xmldosyası yoksa, oluşturun. -
Aşağıdaki kaynağı ekleyin:
<resources>
<bool name="adapty_onboarding_enable_safe_area_paddings">false</bool>
</resources>
Değişikliklerin uygulamanızdaki tüm onboarding’ler için geçerli olduğunu unutmayın.