Presentar onboardings en Kotlin Multiplatform SDK
Si has personalizado un onboarding con el builder, no necesitas preocuparte por renderizarlo en el código de tu app Kotlin Multiplatform para mostrárselo al usuario. Ese onboarding incluye tanto lo que debe mostrarse como la forma en que debe hacerlo.
Antes de empezar, asegúrate de que:
- Tienes instalado Adapty Kotlin Multiplatform SDK 3.16.1 o posterior.
- Has creado un onboarding.
- Has añadido el onboarding a un placement.
El SDK de Adapty para Kotlin Multiplatform ofrece dos formas de presentar onboardings:
- Con Compose Multiplatform
- Sin Compose Multiplatform
Con Compose Multiplatform
Para mostrar un onboarding, usa el método view.present() sobre el view creado por el método createOnboardingView. Cada view solo puede usarse una vez. Si necesitas mostrar el onboarding de nuevo, llama a createOnboardingView otra vez para crear una nueva instancia de view.
Reutilizar el mismo view sin recrearlo puede producir un error.
viewModelScope.launch {
AdaptyUI.createOnboardingView(onboarding = onboarding).onSuccess { view ->
view.present()
}.onError { error ->
// handle the error
}
}
Configurar el estilo de presentación en iOS
Configura cómo se presenta el onboarding en iOS pasando el parámetro iosPresentationStyle al método present(). El parámetro acepta los valores AdaptyUIIOSPresentationStyle.FULLSCREEN (predeterminado) o AdaptyUIIOSPresentationStyle.PAGESHEET.
viewModelScope.launch {
val view = AdaptyUI.createOnboardingView(onboarding = onboarding).getOrNull()
view?.present(iosPresentationStyle = AdaptyUIIOSPresentationStyle.PAGESHEET)
}
Personalizar cómo se abren los enlaces en los onboardings
Por defecto, los enlaces de los onboardings se abren en un navegador in-app. Esto ofrece una experiencia fluida al mostrar las páginas web dentro de tu aplicación, sin que el usuario tenga que cambiar de app.
Si prefieres que los enlaces se abran en un navegador externo, puedes personalizar este comportamiento estableciendo el parámetro externalUrlsPresentation en 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
}
}
Sin Compose Multiplatform
createNativeOnboardingView forma parte del módulo principal io.adapty:adapty-kmp. Si tu proyecto no usa Compose Multiplatform, no necesitas la dependencia io.adapty:adapty-kmp-ui.
Para integrar un onboarding sin Compose Multiplatform, llama a createNativeOnboardingView. Devuelve un AdaptyNativeOnboardingView que añades a tu layout:
Liberar la vista
Llama a dispose() cuando elimines la vista de tu layout. Esto cancela el registro del listener de eventos y libera los recursos internos.
nativeView.dispose()