Presentar onboardings en Flutter SDK
Si has personalizado un onboarding con el builder, no necesitas preocuparte por renderizarlo en el código de tu app Flutter para mostrárselo al usuario. Ese onboarding contiene tanto lo que se debe mostrar como la forma en que debe mostrarse.
Antes de empezar, asegúrate de:
- Tener instalado el SDK de Flutter de Adapty 3.8.0 o posterior.
- Haber creado un onboarding.
- Haber añadido el onboarding a un placement.
El SDK de Flutter de Adapty ofrece dos formas de presentar onboardings:
-
Pantalla independiente
-
Widget embebido
Presentar como pantalla independiente
Para mostrar un onboarding como pantalla independiente, utiliza el método onboardingView.present() en el onboardingView 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 onboardingView.
Reutilizar el mismo onboardingView sin recrearlo puede provocar un error AdaptyUIError.viewAlreadyPresented.
try {
await onboardingView.present();
} on AdaptyError catch (e) {
// handle the error
} catch (e) {
// handle the error
}
Cerrar el onboarding
Cuando necesites cerrar el onboarding por código, usa el método dismiss():
try {
await onboardingView.dismiss();
} on AdaptyError catch (e) {
// handle the error
} catch (e) {
// 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.
try {
await onboardingView.present(iosPresentationStyle: AdaptyUIIOSPresentationStyle.pageSheet);
} on AdaptyError catch (e) {
// handle the error
} catch (e) {
// handle the error
}
Incrustar en la jerarquía de widgets
Para incrustar un onboarding dentro de tu árbol de widgets existente, usa el widget AdaptyUIOnboardingPlatformView directamente en tu jerarquía de widgets de Flutter.
AdaptyUIOnboardingPlatformView(
onboarding: onboarding, // The onboarding object you fetched
onDidFinishLoading: (meta) {
},
onDidFailWithError: (error) {
},
onCloseAction: (meta, actionId) {
},
onPaywallAction: (meta, actionId) {
},
onCustomAction: (meta, actionId) {
},
onStateUpdatedAction: (meta, elementId, params) {
},
onAnalyticsEvent: (meta, event) {
},
)
Para que la vista de plataforma en Android funcione, asegúrate de que tu MainActivity extiende FlutterFragmentActivity:
class MainActivity : FlutterFragmentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
} Cargador durante el onboarding
Al mostrar un onboarding, puede que notes una breve pantalla de carga entre tu splash screen y el onboarding mientras se inicializa la vista subyacente. Puedes gestionar esto de diferentes maneras según tus necesidades.
Control de la splash screen mediante onDidFinishLoading
Este enfoque solo está disponible al incrustar el onboarding como widget. No está disponible para la presentación en pantalla independiente.
El enfoque recomendado para multiplataforma es mantener visible tu splash screen o superposición personalizada hasta que el onboarding haya cargado completamente y, a continuación, ocultarla manualmente.
Si usas el widget embebido, coloca tu propio widget encima y ocúltalo cuando se dispare onDidFinishLoading:
AdaptyUIOnboardingPlatformView(
onboarding: onboarding,
onDidFinishLoading: (meta) {
// Hide your custom splash screen or overlay here
},
// ... other callbacks
)
Personalizar el loader nativo
Este enfoque es específico de plataforma y requiere mantener código de UI nativo. No se recomienda a menos que ya mantengas capas nativas separadas en tu app.
Si necesitas personalizar el loader predeterminado, puedes reemplazarlo con layouts específicos de cada plataforma. Este enfoque requiere implementaciones separadas para Android e iOS:
- iOS: Añade
AdaptyOnboardingPlaceholderView.xiba tu proyecto de Xcode - Android: Crea
adapty_onboarding_placeholder_view.xmlenres/layouty define ahí un placeholder
Personalizar cómo se abren los enlaces en los onboardings
La personalización de cómo se abren los enlaces en los onboardings está disponible a partir de Adapty SDK v3.15.1.
Por defecto, los enlaces en los onboardings se abren en un navegador integrado en la 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.externalBrowser:
Deshabilitar los márgenes de área segura (Android)
Por defecto, en dispositivos Android, la vista de onboarding aplica automáticamente márgenes de área segura para evitar elementos del sistema como la barra de estado y la barra de navegación. Sin embargo, si quieres deshabilitar este comportamiento y tener control total sobre el diseño, puedes hacerlo añadiendo un recurso booleano a tu aplicación:
-
Ve a
android/app/src/main/res/values. Si no existe el archivobools.xml, créalo. -
Añade el siguiente recurso:
<resources>
<bool name="adapty_onboarding_enable_safe_area_paddings">false</bool>
</resources>
Ten en cuenta que los cambios se aplican de forma global a todos los onboardings de tu app.