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ırma

present() metoduna iosPresentationStyle parametresini geçirerek onboarding’in 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.

Onboardinglerde linklerin nasıl açıldığını özelleştirme, Adapty SDK v3.15.1 sürümünden itibaren desteklenmektedir.

Varsayılan olarak, onboardinglerdeki linkler uygulama içi 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 kesintisiz bir kullanıcı deneyimi sunar.

Linkleri bunun yerine harici 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.