Показ онбординга в iOS SDK

Начиная с SDK v4 (бета), вы можете создавать флоу как более мощную альтернативу онбордингам. В отличие от онбордингов, которые работают внутри WebView, флоу рендерятся нативно на устройстве — это обеспечивает плавные анимации, единый iOS-стиль, быструю загрузку и отсутствие зависимости от WebView. Смотрите Получение флоу и пейволов и Отображение флоу и пейволов, чтобы начать.

Если вы создали онбординг с помощью конструктора, вам не нужно беспокоиться о его рендеринге в коде мобильного приложения для отображения пользователю. Такой онбординг содержит и то, что должно показываться, и то, как это должно показываться.

Перед началом убедитесь, что:

  1. Вы установили Adapty iOS SDK версии 3.8.0 или выше.
  2. Вы создали онбординг.
  3. Вы добавили онбординг в плейсмент.

Показ онбордингов в Swift

Чтобы отобразить визуальный онбординг на экране устройства, выполните следующие шаги:

  1. Получите конфигурацию онбординга с помощью метода .getOnboardingConfiguration.

  2. Инициализируйте визуальный онбординг с помощью метода .onboardingController:

    Параметры запроса: | Параметр | Наличие | Описание | |:-----------------------------|:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | onboarding configuration | required | Объект AdaptyUI.OnboardingConfiguration, содержащий все свойства онбординга. Используйте метод AdaptyUI.getOnboardingConfiguration для его получения. | | delegate | required | Объект AdaptyOnboardingControllerDelegate для прослушивания событий онбординга. | Возвращает:

    ОбъектОписание
    AdaptyOnboardingControllerОбъект, представляющий запрошенный экран онбординга
  3. После успешного создания объекта его можно отобразить на экране устройства:

    import Adapty
    import AdaptyUI
   // 0. Получите онбординг, если ещё не сделали этого
   let onboarding = try await Adapty.getOnboarding(placementId: "YOUR_PLACEMENT_ID")
   
   // 1. Получите конфигурацию представления онбординга:
   let configuration = try AdaptyUI.getOnboardingConfiguration(forOnboarding: onboarding)

   // 2. Создайте контроллер представления онбординга
   let onboardingController = try AdaptyUI.onboardingController(
       with: configuration,
       delegate: <AdaptyOnboardingControllerDelegate>
   ) 

   // 3. Покажите его пользователю
   present(onboardingController, animated: true)

Показ онбординга в SwiftUI

Чтобы отобразить визуальный онбординг на экране устройства в SwiftUI:

// 1. Obtain the onboarding view configuration:
let configuration = try AdaptyUI.getOnboardingConfiguration(forOnboarding: onboarding)

// 2. Display the Onboarding View within your view hierarchy
AdaptyOnboardingView(
    configuration: configuration,
    placeholder: { Text("Your Placeholder View") },
    onCloseAction: { action in
        // hide the onboarding view
    },
    onError: { error in
         // handle the error
    }
)

Добавление плавных переходов между сплэш-экраном и онбордингом

По умолчанию между сплэш-экраном и онбордингом отображается экран загрузки, пока онбординг полностью не загрузится. Если вы хотите сделать переход более плавным, можно его настроить: либо продлить отображение сплэш-экрана, либо показать что-то другое.

Для этого задайте placeholder (то, что будет отображаться во время загрузки онбординга). Если placeholder задан, онбординг будет загружаться в фоне и автоматически отобразится, как только будет готов.

Настройка способа открытия ссылок в онбординге поддерживается начиная с Adapty SDK v.3.15.1.

По умолчанию ссылки в онбординге открываются во встроенном браузере. Это обеспечивает плавный пользовательский опыт: веб-страницы отображаются прямо внутри приложения, и пользователям не нужно переключаться между приложениями.

Если вы хотите открывать ссылки во внешнем браузере, настройте это поведение, установив параметр externalUrlsPresentation в значение .externalBrowser:


let configuration = try AdaptyUI.getOnboardingConfiguration(
    forOnboarding: onboarding,
    externalUrlsPresentation: .externalBrowser // default – .inAppBrowser
)