React Native SDK'da onboarding sunma

Onboarding’i builder ile özelleştirdiyseniz, kullanıcıya göstermek için mobil uygulama kodunuzda ayrıca render etmenize gerek yok. Böyle bir onboarding; hem ne gösterileceğini hem de nasıl gösterileceğini kendi içinde barındırır.

Başlamadan önce şunları sağlayın:

  1. Adapty React Native SDK 3.8.0 veya daha yeni bir sürümünü yüklemiş olun.
  2. Bir onboarding oluşturmuş olun.
  3. Onboarding’i bir placement’a eklemiş olun.

Adapty React Native SDK, onboarding’leri sunmak için iki yöntem sunar:

  • React bileşeni: Yerleşik bileşen, uygulamanızın mimarisine ve navigasyon sistemine entegre etmenizi sağlar.

  • Modal sunum

React bileşeni

Onboarding’i mevcut bileşen ağacınıza gömmek için AdaptyOnboardingView bileşenini doğrudan React Native bileşen hiyerarşinizde kullanın. Yerleşik bileşen, uygulamanızın mimarisine ve navigasyon sistemine entegre etmenizi sağlar.

Android’de AdaptyOnboardingView için görsel bir render sorununun önüne geçmek amacıyla ek yapılandırma yapmanızı öneririz. Bkz. Android’de sistem arayüzü onboarding içeriğiyle çakışıyor.

Onboarding’i kullanıcının kapatabileceği bağımsız bir ekran olarak göstermek için createOnboardingView metoduyla oluşturulan view üzerinde view.present() metodunu kullanın. Her view yalnızca bir kez kullanılabilir. Onboarding’i tekrar göstermeniz gerekirse createOnboardingView’ı bir kez daha çağırarak yeni bir view örneği oluşturun.

Aynı view’ı yeniden oluşturmadan kullanmak yasaktır. Bu, AdaptyUIError.viewAlreadyPresented hatasına neden olur.

iOS sunum stilini yapılandırın

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.

try {
  await view.present(iosPresentationStyle: 'page_sheet');
} catch (error) {
  // handle the error
}

Onboarding sırasında yükleyici

React Native’de onboarding sunarken, onboarding görünmeden önce kısa bir beyaz yanıp sönme veya yükleme ekranı fark edebilirsiniz. Bu, altta yatan native view başlatılırken gerçekleşir. İhtiyacınıza ve iş akışınıza bağlı olarak bunu farklı şekillerde ele alabilirsiniz.

onFinishedLoading ile açılış ekranını kontrol etme

Bu yaklaşım yalnızca React bileşeni kullanılırken geçerlidir. Modal sunum için mevcut değildir.

React Native için önerilen yaklaşım, onboarding tamamen yüklenene kadar açılış ekranınızı veya özel bir katmanı görünür tutmak, ardından manuel olarak gizlemektir.

React bileşenini (AdaptyOnboardingView) kullanırken, açılış ekranınızı veya katmanınızı gizlemeden önce onFinishedLoading olayını bekleyin:

Native yükleyiciyi özelleştirme

Expo yönetilen iş akışı, özel native layout’lar yerleştirmeyi desteklemez (ör. Android’de res/layout). Expo uygulamalarında açılış ekranını kontrol etmek veya React Native katmanı kullanmak tek geçerli çözümdür.

Native yükleyiciyi Android ve iOS’ta platforma özgü layout’larla değiştirebilirsiniz. Modal sunum kullanıyorsanız bu tek seçeneğinizdir.

Ancak bu yaklaşım genellikle React Native uygulamaları için daha az pratiktir:

  • Ayrı Android ve iOS uygulamaları gerektirir
  • Expo yönetilen iş akışıyla uyumlu değildir

Her platform için bir yer tutucu tanımlayın:

  • iOS: Xcode projenize AdaptyOnboardingPlaceholderView.xib ekleyin. Daha fazla bilgi.
  • Android: res/layout dizininde adapty_onboarding_placeholder_view.xml oluşturun ve bir yer tutucu tanımlayın. Daha fazla bilgi.

Onboarding’lerde linklerin açılma şeklinin özelleştirilmesi Adapty SDK v. 3.15.1 sürümünden itibaren desteklenmektedir.

Varsayılan olarak onboarding’lerdeki linkler uygulama içi tarayıcıda açılır. Bu, web sayfalarını uygulamanız içinde görüntüleyerek kullanıcıların uygulama değiştirmeden görüntülemesine olanak tanır.

Linkleri bunun yerine harici bir tarayıcıda açmayı tercih ediyorsanız externalUrlsPresentation parametresini WebPresentation.BrowserOutApp olarak ayarlayarak bu davranışı özelleştirebilirsiniz:

Sorun giderme

Android’de sistem arayüzü onboarding içeriğiyle çakışıyor

Bu ayar yalnızca bare React Native projelerinde desteklenmektedir.

Expo yönetilen iş akışı kullanıyorsanız bu Android kaynağını doğrudan ekleyemezsiniz. Bu ayarı uygulamak için ilgili Android kaynağını ekleyen özel bir Expo config plugin oluşturmanız ve bunu app.config.js’e kaydetmeniz gerekir. Bu zorunludur çünkü Expo, native Android projesini sizin adınıza yönetir.

Android’de AdaptyOnboardingView kullanırken durum çubuğu ve gezinme çubuğu gibi sistem arayüzü öğeleri paywall içeriğinin üzerinde görünebilir. Bunu önlemek için uygulamanıza aşağıdaki boolean kaynağını ekleyin:

  1. android/app/src/main/res/values dizinine gidin. bools.xml dosyası yoksa oluşturun.

  2. Aşağıdaki kaynağı ekleyin:

<resources>
    <bool name="adapty_onboarding_enable_safe_area_paddings">false</bool>
</resources>

Bu değişikliklerin uygulamanızdaki tüm onboarding’ler için genel olarak uygulandığını unutmayın.

Sonraki adımlar

Onboarding’inizi sunduktan sonra kullanıcı etkileşimlerini ve olayları ele almak isteyeceksiniz. Kullanıcı eylemlerine yanıt vermek ve analizleri takip etmek için onboarding olaylarını nasıl ele alacağınızı öğrenin.