Migrar el SDK de Adapty Flutter a v4.3
El SDK de Adapty Flutter 4.3 muestra los mensajes in-app de Google Play por defecto y cambia los tipos Dart de algunos datos de eventos de flow y onboarding. No se elimina ni renombra ninguna API pública, por lo que tu app compila contra la versión 4.3 sin cambios. Para mantener el mismo comportamiento, revisa cada cambio en esta guía.
Si todavía usas la versión 4.0, empieza con Migrar a v4.1 y luego sigue esta guía.
Referencia rápida
| v4.1 | v4.3 |
|---|---|
| Los mensajes de Google Play no se solicitan | Los mensajes de Google Play se muestran por defecto en Android, incluso sobre los flows |
Los parámetros de eventos de flow con números enteros llegan como double en Android | Llegan como int en ambas plataformas |
Los campos de email de onboarding llegan como AdaptyOnboardingsTextInput | Llegan como AdaptyOnboardingsEmailInput |
| Imprimir el input de onboarding oculta el valor introducido | Imprimirlo muestra el valor introducido |
Instalación
Actualiza adapty_flutter a v4.3 en tu pubspec.yaml:
dependencies:
adapty_flutter: ^4.3.0
Si tu app usa el Modo Kids, especifica adapty_flutter_kids en su lugar:
dependencies:
adapty_flutter_kids: ^4.3.0
Los requisitos no han cambiado respecto a la versión 4.1: Flutter 3.32.0 (Dart 3.8.0) e iOS 15.0. Consulta Instalar el SDK de Adapty para la configuración completa.
Los mensajes de Google Play se muestran por defecto
A partir de la versión 4.3, el SDK solicita mensajes in-app de Google Play, como avisos de pagos rechazados, cada vez que se inicia una Activity de tu app después de activate. Esto incluye los momentos en que la app vuelve al primer plano y cuando se abre o cierra un flow u onboarding, por lo que un mensaje puede aparecer sobre un paywall.
Si esto no supone ningún problema para tu app, no es necesario realizar ningún cambio. Para controlar cuándo aparecen los mensajes, activa el SDK con gestión manual en Android y llama a showStoreMessages en el momento que mejor se adapte a tu app:
final configuration = AdaptyConfiguration(apiKey: 'YOUR_PUBLIC_SDK_KEY');
if (Platform.isAndroid) {
configuration.withStoreMessagesHandling(AdaptyStoreMessagesHandling.manual);
}
await Adapty().activate(configuration: configuration);
Establece el manejo manual solo en Android para no afectar iOS: en iOS 16 y versiones posteriores, el manejo manual también retiene los mensajes del App Store hasta que tu app llame a showStoreMessages. Para ver la API completa, consulta Controlar mensajes del store.
En el modo manual, los stores no muestran mensajes por sí solos. Si tu app nunca llama a showStoreMessages, los usuarios nunca verán un aviso de pago rechazado.
Los parámetros numéricos de eventos de flow son int en Android
En Android, los parámetros de número entero de los eventos analíticos de flow solían llegar como double. A partir de la versión 4.3, llegan como int, igual que en iOS. Esto afecta a flowViewDidReceiveAnalyticEvent y al callback onDidReceiveAnalyticEvent de AdaptyUIFlowPlatformView, incluidos los valores de fecha y hora de los eventos de entrada de flow.
Un cast a double ahora lanza una excepción en Android. Lee los parámetros numéricos como num:
- final timestamp = params['value'] as double;
+ final timestamp = params['value'] as num;
Los campos de email del onboarding llegan como AdaptyOnboardingsEmailInput
A partir de la versión 4.3, los campos de email de un onboarding llegan a onboardingViewOnStateUpdatedAction y al callback onStateUpdatedAction de AdaptyUIOnboardingPlatformView como AdaptyOnboardingsEmailInput. Antes llegaban como AdaptyOnboardingsTextInput. Si tu código lee emails desde el caso de texto, gestiona también el caso de email:
switch (input) {
case AdaptyOnboardingsTextInput(:final value):
// text fields
break;
+ case AdaptyOnboardingsEmailInput(:final value):
+ // email fields
+ break;
case AdaptyOnboardingsNumberInput(:final value):
// number fields
break;
}
Los campos numéricos ahora llegan como AdaptyOnboardingsNumberInput. Antes de la versión 4.3, sus actualizaciones no llegaban en absoluto. Consulta Procesar datos de onboardings.
Los valores de entrada del onboarding aparecen en la salida impresa
Al imprimir un AdaptyOnboardingsInputParams o un AdaptyOnboardingsInput, ahora se muestra el valor introducido. Si tu app registra estos objetos en los logs, revísalos: ahora pueden contener nombres, correos electrónicos y otros datos que los usuarios introducen.
Novedades en 4.3
Estas incorporaciones no requieren cambios en el código:
- Controlar mensajes de la store: Elige cuándo aparecen los mensajes de App Store y Google Play.
- Precargar placements: Los métodos
preloadFlowsypreloadFlowsForDefaultAudiencecalientan la caché del flow. - Liberar una vista retenida: El método
destroy()libera una vista de flow que retuviste condismiss(destroy: false)o que nunca presentaste. - Planes de compromiso de 12 meses: La propiedad
AdaptyProductSubscription.pricingTermsdescribe el plan en iOS, y los niveles de acceso informanbillingPlanycommitmentInfo. - Modo observador: El método
reportTransactionacepta un parámetro opcionalappleJwsTransactionen iOS.