Presentar paywalls del nuevo Paywall Builder en el SDK de iOS
Si has personalizado un paywall con el Paywall Builder, no necesitas preocuparte por renderizarlo en el código de tu app para mostrárselo al usuario. Ese paywall ya contiene tanto lo que debe mostrarse como la forma en que debe hacerlo.
Esta guía es para paywalls del nuevo Paywall Builder. El proceso para presentar paywalls varía según la versión del Paywall Builder con la que se diseñaron, si son paywalls de Remote Config o si usas el modo Observer.
- Para presentar paywalls de Remote Config, consulta Renderizar paywall diseñado con Remote Config.
- Para presentar paywalls en modo Observer, consulta iOS - Presentar paywalls del Paywall Builder en modo Observer
Para obtener el objeto AdaptyUI.PaywallConfiguration que se usa a continuación, consulta Obtener paywalls del Paywall Builder y su configuración.
Presentar paywalls en SwiftUI
Presentar como vista modal
Para mostrar el paywall visual en la pantalla del dispositivo como vista modal, usa el modificador .paywall en SwiftUI:
@State var paywallPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the paywall
var body: some View {
Text("Hello, AdaptyUI!")
.paywall(
isPresented: $paywallPresented,
paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
didPerformAction: { action in
switch action {
case .close:
paywallPresented = false
default:
// Handle other actions
break
}
},
didFinishPurchase: { product, profile in paywallPresented = false },
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in paywallPresented = false }
)
}
Parámetros:
| Parámetro | Requerido | Descripción |
|---|---|---|
| isPresented | requerido | Un binding que controla si la pantalla del paywall está visible. |
| paywallConfiguration | requerido | Un objeto AdaptyUI.PaywallConfiguration con los detalles visuales del paywall. Usa el método AdaptyUI.paywallConfiguration(for:products:viewConfiguration:observerModeResolver:tagResolver:timerResolver:). Consulta Obtener paywalls del Paywall Builder y su configuración para más detalles. |
| didFailPurchase | requerido | Se invoca cuando Adapty.makePurchase() falla. |
| didFinishRestore | requerido | Se invoca cuando Adapty.restorePurchases() finaliza correctamente. |
| didFailRestore | requerido | Se invoca cuando Adapty.restorePurchases() falla. |
| didFailRendering | requerido | Se invoca si ocurre un error al renderizar la interfaz. En ese caso, contacta con el soporte de Adapty. |
| fullScreen | opcional | Determina si el paywall se muestra en pantalla completa o como modal. Por defecto es true. |
| didAppear | opcional | Se invoca cuando la vista del paywall se presenta. |
| didDisappear | opcional | Se invoca cuando la vista del paywall se descarta. |
| didPerformAction | opcional | Se invoca cuando el usuario pulsa un botón. Cada botón tiene un ID de acción distinto. Hay dos IDs predefinidos: close y openURL; los demás son personalizados y se pueden configurar en el builder. |
| didSelectProduct | opcional | Se invoca cuando se selecciona un producto para la compra (por el usuario o por el sistema). |
| didStartPurchase | opcional | Se invoca cuando el usuario inicia el proceso de compra. |
| didFinishPurchase | opcional | Se invoca cuando Adapty.makePurchase() finaliza correctamente. |
| didFinishWebPaymentNavigation | opcional | Se invoca cuando finaliza la navegación del pago web. |
| didStartRestore | opcional | Se invoca cuando el usuario inicia el proceso de restauración. |
| didFailLoadingProducts | opcional | Se invoca cuando ocurren errores al cargar los productos. Devuelve true para reintentar la carga. |
| didPartiallyLoadProducts | opcional | Se invoca cuando los productos se cargan de forma parcial. |
| showAlertItem | opcional | Un binding que gestiona la visualización de alertas sobre el paywall. |
| showAlertBuilder | opcional | Una función para renderizar la vista de alerta. |
| placeholderBuilder | opcional | Una función para renderizar la vista de marcador de posición mientras se carga el paywall. |
Consulta el tema iOS - Gestión de eventos para más detalles sobre los parámetros.
Presentar como vista no modal
También puedes presentar paywalls como destinos de navegación o vistas en línea dentro del flujo de navegación de tu app. Usa AdaptyPaywallView directamente en tus vistas SwiftUI:
AdaptyPaywallView(
paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
didFailPurchase: { product, error in
// Handle purchase failure
},
didFinishRestore: { profile in
// Handle successful restore
},
didFailRestore: { error in
// Handle restore failure
},
didFailRendering: { error in
// Handle rendering error
}
)
Presentar paywalls en UIKit
Para mostrar el paywall visual en la pantalla del dispositivo, sigue estos pasos:
-
Inicializa el paywall visual que quieres mostrar usando el método
.paywallController(for:products:viewConfiguration:delegate:):import Adapty import AdaptyUI let visualPaywall = AdaptyUI.paywallController( with: <paywall configuration object>, delegate: <AdaptyPaywallControllerDelegate> )Parámetros de la solicitud:
Parámetro Presencia Descripción paywall configuration requerido Un objeto AdaptyUI.PaywallConfigurationcon los detalles visuales del paywall. Usa el métodoAdaptyUI.getPaywallConfiguration(forPaywall:locale:). Consulta Obtener paywalls del Paywall Builder y su configuración para más detalles.delegate requerido Un AdaptyPaywallControllerDelegatepara escuchar los eventos del paywall. Consulta el tema Gestión de eventos del paywall para más detalles.Devuelve:
Objeto Descripción AdaptyPaywallController Un objeto que representa la pantalla del paywall solicitado -
Una vez creado el objeto correctamente, puedes mostrarlo en la pantalla del dispositivo:
present(visualPaywall, animated: true)
¿Quieres ver un ejemplo real de cómo se integra el SDK de Adapty en una app móvil? Echa un vistazo a nuestras apps de ejemplo, que muestran la configuración completa, incluyendo la visualización de paywalls, la realización de compras y otras funcionalidades básicas.