Presentar flows en modo observador en el SDK de Capacitor
Si has personalizado un flow o paywall usando el builder, no necesitas preocuparte por renderizarlo en el código de tu app para mostrárselo al usuario. Ese flow o paywall ya contiene tanto qué mostrar como cómo mostrarlo.
Esta sección hace referencia únicamente al modo Observer. Si no trabajas en modo Observer, consulta el tema Mostrar flows y paywalls.
Esta funcionalidad requiere Adapty Capacitor SDK 4.0 o posterior — anteriormente solo estaba disponible en los SDKs nativos de iOS y Android. Consulta la guía de migración para actualizar.
Antes de empezar a mostrar flows (haz clic para expandir)
- Configura la integración inicial de Adapty con App Store y con Google Play.
2. Instala y configura el SDK de Adapty. Asegúrate de establecer el parámetro
observerModeentrue. Consulta la guía de instalación del SDK de Capacitor. 3. Crea productos en el Adapty Dashboard. 4. Configura flows o paywalls en los builders y asígnales productos. 5. Crea placements y asígnales tus flows o paywalls. 6. Obtén los flows y su configuración en el código de tu app.
En el modo Observer, el SDK no realiza compras por ti. Cuando un usuario pulsa el botón de compra o restauración en un flow o paywall renderizado por Adapty, el SDK invoca tu manejador de eventos onObserverPurchaseInitiated o onObserverRestoreInitiated en su lugar — realiza la compra o restauración con tu propio código allí.
- Establece los manejadores de eventos del modo observer en la vista. A diferencia de otras plataformas, no hay un objeto resolver separado — los manejadores forman parte de los manejadores de eventos habituales, así que establécelos en cada vista que crees:
import { adapty, createFlowView } from '@adapty/capacitor'; const view = await createFlowView(flow); const unsubscribe = await view.setEventHandlers({ onObserverPurchaseInitiated(product, onStartPurchase, onFinishPurchase) { onStartPurchase(); // the view shows its loading indicator myPurchaseApi(product.vendorProductId) .then((transactionId) => adapty.reportTransaction({ transactionId, variationId: flow.variationId }), ) .finally(() => onFinishPurchase()); // the view hides the loading indicator return false; // keep the flow open; dismiss it yourself after success }, onObserverRestoreInitiated(onStartRestore, onFinishRestore) { onStartRestore(); myRestoreApi().finally(() => onFinishRestore()); return false; }, });
El handler onObserverPurchaseInitiated te informa de que el usuario ha iniciado una compra, y onObserverRestoreInitiated — de que el usuario ha iniciado una restauración. Activa tu flow de compra o restauración personalizado en respuesta.
Además, recuerda invocar los siguientes callbacks para notificar a AdaptyUI sobre el proceso de compra o restauración. Esto es necesario para el comportamiento correcto del flow, como mostrar el loader, entre otras cosas:
| Callback | Description |
|---|---|
| onStartPurchase() | Se debe invocar este callback para notificar a AdaptyUI que la compra ha comenzado. |
| onFinishPurchase() | Se debe invocar este callback para notificar a AdaptyUI que la compra ha finalizado. |
| onStartRestore() | Se debe invocar este callback para notificar a AdaptyUI que la restauración ha comenzado. |
| onFinishRestore() | Se debe invocar este callback para notificar a AdaptyUI que la restauración ha finalizado. |
- Presenta la vista del flow como de costumbre: obtén el flow y crea su vista, luego preséntala. No se necesitan parámetros adicionales — los handlers se activan solo cuando el SDK fue activado con
observerMode: true.
No olvides reportar la transacción y asociarla con el paywall. De lo contrario, Adapty no reconocerá la transacción y no podrá determinar el paywall origen de la compra.