Отображение онбординга в Kotlin Multiplatform SDK

Warning

Онбординги устарели начиная с Adapty 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.

Warning

Повторное использование одного и того же 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

Note

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

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

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

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

nativeView.dispose()