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

Если вы создали онбординг с помощью конструктора, вам не нужно беспокоиться о его отображении в коде вашего 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()