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

Онбординги устарели в SDK v4 и будут удалены в одном из следующих релизов. Они больше не получают исправлений и улучшений. Используйте флоу вместо них: в отличие от онбордингов, которые работают внутри WebView, флоу рендерятся нативно на устройстве — это обеспечивает более плавные анимации, единый нативный внешний вид, быструю загрузку и отсутствие зависимости от WebView. Подробнее — в разделах Получение флоу и пейволов и Отображение флоу и пейволов.

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

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

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

Adapty Kotlin Multiplatform SDK предоставляет два способа отображения онбординга:

  • С Compose Multiplatform
  • Без Compose Multiplatform

С Compose Multiplatform

Чтобы отобразить онбординг, вызовите метод view.present() на объекте view, созданном методом createOnboardingView. Каждый view можно использовать только один раз. Если нужно показать онбординг снова, вызовите createOnboardingView ещё раз, чтобы создать новый экземпляр view.

Повторное использование одного и того же view без его пересоздания может привести к ошибке.


viewModelScope.launch {
    AdaptyUI.createOnboardingView(onboarding = onboarding).onSuccess { view ->
        view.present()
    }.onError { error ->
        // handle the error
    }
}

Настройка стиля представления для iOS

Настройте способ отображения онбординга на iOS, передав параметр iosPresentationStyle в метод present(). Параметр принимает значения AdaptyUIIOSPresentationStyle.FULLSCREEN (по умолчанию) или AdaptyUIIOSPresentationStyle.PAGESHEET.


viewModelScope.launch {
    val view = AdaptyUI.createOnboardingView(onboarding = onboarding).getOrNull()
    view?.present(iosPresentationStyle = AdaptyUIIOSPresentationStyle.PAGESHEET)
}

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

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


viewModelScope.launch {
    AdaptyUI.createOnboardingView(
        onboarding = onboarding,
        externalUrlsPresentation = AdaptyWebPresentation.EXTERNAL_BROWSER // default – IN_APP_BROWSER
    ).onSuccess { view ->
        view.present()
    }.onError { error ->
        // handle the error
    }
}

Без Compose Multiplatform

createNativeOnboardingView входит в состав основного модуля io.adapty:adapty-kmp. Если ваш проект не использует Compose Multiplatform, зависимость io.adapty:adapty-kmp-ui не нужна.

Чтобы встроить онбординг без Compose Multiplatform, вызовите createNativeOnboardingView. Метод возвращает AdaptyNativeOnboardingView, который вы добавляете в свой лейаут:

Освобождение ресурсов

Вызывайте dispose() при удалении view из макета. Это отписывает обработчик событий и освобождает внутренние ресурсы.

nativeView.dispose()