Responder a acciones de flow - iOS
Si estás construyendo flows o paywalls con el Adapty Flow Builder o Paywall Builder, es fundamental configurar los botones correctamente:
- Añade un botón en el Paywall Builder y asígnale una acción ya existente o crea un ID de acción personalizado.
- Escribe código en tu app para gestionar cada acción que hayas asignado.
Esta guía explica cómo gestionar acciones personalizadas y acciones preexistentes en tu código.
Solo el cierre del flow/paywall y la apertura de URLs se gestionan automáticamente. El resto de acciones de botones requieren una implementación adecuada en el código de la app.
Cerrar flows y paywalls
Para añadir un botón que cierre tu flow o paywall:
- En el editor, añade un botón y asígnale la acción Close.
- En el código de tu app, implementa un manejador para la acción
close.
En el SDK de iOS, la acción close cierra el flow o paywall por defecto. Sin embargo, puedes sobrescribir este comportamiento en tu código si lo necesitas. Por ejemplo, cerrar un flow podría disparar la apertura de otro.
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case .close:
flowPresented = false // dismiss the flow or paywall
default:
break
}
},
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in flowPresented = false }
)Abrir URLs desde flows y paywalls
Si quieres añadir un grupo de enlaces (p. ej., términos de uso y restauración de compras), añade un elemento Link en el builder y trátalo igual que los botones con la acción Open URL.
Para añadir un botón que abra un enlace desde tu flow o paywall (p. ej., Terms of use o Privacy policy):
- En el builder, añade un botón, asígnale la acción Open URL e introduce la URL que quieras abrir.
- En el código de tu app, implementa un handler para la acción
openURLque abra la URL recibida en un navegador.
En el SDK de iOS, la acción openURL abre la URL de forma predeterminada. Sin embargo, puedes modificar este comportamiento en tu código si lo necesitas.
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
default:
break
}
},
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in flowPresented = false }
)Manejar acciones personalizadas
Para añadir un botón que maneje cualquier otra acción:
- En el builder, añade un botón, asígnale la acción Custom y dale un ID.
- En el código de tu app, implementa un handler para el ID de acción que hayas creado.
Por ejemplo, si tienes otro conjunto de ofertas de suscripción o compras únicas, puedes añadir un botón que muestre otro flow o paywall:
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case let .custom(id):
if id == "openNewPaywall" {
// Display another flow or paywall
}
default:
break
}
},
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in flowPresented = false }
)Si estás creando paywalls con el Paywall Builder de Adapty, es fundamental configurar los botones correctamente:
- Añade un botón en el Paywall Builder y asígnale una acción preexistente o crea un ID de acción personalizado.
- Escribe código en tu app para gestionar cada acción que hayas asignado.
Esta guía explica cómo gestionar acciones personalizadas y preexistentes en tu código.
Solo las compras, restauraciones, cierres del paywall y apertura de URLs se gestionan automáticamente. Todas las demás acciones de botón requieren una implementación de respuesta adecuada en el código de la app.
Cerrar paywalls
Para añadir un botón que cierre tu paywall:
- En el Paywall Builder, añade un botón y asígnale la acción Close.
- En el código de tu app, implementa un manejador para la acción
closeque descarte el paywall.
En el SDK de iOS, la acción close cierra el paywall de forma predeterminada. Sin embargo, puedes modificar este comportamiento en tu código si lo necesitas. Por ejemplo, cerrar un paywall podría abrir otro.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .close:
controller.dismiss(animated: true) // default behavior
break
}
}Abrir URLs desde paywalls
Si quieres añadir un grupo de enlaces (por ejemplo, condiciones de uso y restauración de compras), añade un elemento Link en el Paywall Builder y gestiónalo igual que los botones con la acción Open URL.
Para añadir un botón que abra un enlace desde tu paywall (por ejemplo, Terms of use o Privacy policy):
- En el Paywall Builder, añade un botón, asígnale la acción Open URL e introduce la URL que quieres abrir.
- En el código de tu app, implementa un handler para la acción
openUrlque abra la URL recibida en un navegador.
En el SDK de iOS, la acción openUrl abre la URL por defecto. Sin embargo, puedes sobrescribir este comportamiento en tu código si lo necesitas.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
break
}
}Iniciar sesión en la app
Para añadir un botón que permita a los usuarios iniciar sesión en tu app:
- En el Paywall Builder, añade un botón y asígnale la acción Login.
- En el código de tu app, implementa un handler para la acción
loginque identifique a tu usuario.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .login:
// Show a login screen
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController")
controller.present(loginVC, animated: true)
}
}Gestionar acciones personalizadas
Para añadir un botón que gestione cualquier otra acción:
- En el Paywall Builder, añade un botón, asígnale la acción Custom y asígnale un ID.
- En el código de tu app, implementa un manejador para el ID de acción que hayas creado.
Por ejemplo, si tienes otro conjunto de ofertas de suscripción o compras únicas, puedes añadir un botón que muestre otro paywall:
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .custom(id):
if id == "openNewPaywall" {
// Display another paywall
}
}
break
}
}