Répondre aux actions de flow - Capacitor
Si vous créez des flows ou des paywalls avec le Flow Builder ou le Paywall Builder d’Adapty, il est essentiel de configurer correctement les boutons :
- Ajoutez un bouton dans le builder et assignez-lui une action existante ou créez un identifiant d’action personnalisé.
- Écrivez le code dans votre application pour gérer chaque action assignée.
Ce guide explique comment gérer les actions personnalisées et prédéfinies dans votre code.
Les achats, restaurations, fermetures de flows et paywalls, ainsi que l’ouverture d’URL sont gérés automatiquement. Vous pouvez configurer leur comportement par défaut ou implémenter des réponses pour les actions personnalisées.
Définir un handler pour un événement remplace entièrement son comportement par défaut. Les handlers que vous ne définissez pas conservent leurs valeurs par défaut.
Fermer les flows et paywalls
Pour ajouter un bouton qui fermera votre flow ou paywall :
- Dans le builder, ajoutez un bouton et assignez-lui l’action Close.
- Dans le code de votre application, implémentez un handler pour l’action
closequi ferme le flow ou le paywall.
Dans le SDK Capacitor, l’action close déclenche par défaut la fermeture du flow ou du paywall. Vous pouvez cependant modifier ce comportement dans votre code si nécessaire. Par exemple, la fermeture d’un flow peut déclencher l’ouverture d’un autre.
const view = await createFlowView(flow);
const unsubscribe = await view.setEventHandlers({
onCloseButtonPress() {
return true; // allow the flow to close
},
});Sur Android, le bouton système Back et le geste retour déclenchent un événement onAndroidSystemBack distinct. Dans le SDK v4, il ne ferme plus le flow par défaut. Retournez true depuis le handler si vous voulez que le bouton Back ferme le flow :
const unsubscribe = await view.setEventHandlers({
onAndroidSystemBack() {
return true; // close the flow when the Back button is pressed
},
});Ouvrir des URL depuis les flows et paywalls
Si vous souhaitez ajouter un groupe de liens (par ex., conditions d’utilisation et restauration d’achat), ajoutez un élément Link dans le builder et gérez-le de la même façon que les boutons avec l’action Open URL.
Pour ajouter un bouton qui ouvre un lien depuis votre flow ou paywall (par ex., Conditions d’utilisation ou Politique de confidentialité) :
- Dans le builder, ajoutez un bouton, assignez-lui l’action Open URL et saisissez l’URL à ouvrir.
- Si nécessaire, dans le code de votre application, implémentez un handler pour l’action
openUrlqui ouvre l’URL reçue à votre façon.
Dans le SDK Capacitor, le fait d’appuyer sur une URL l’ouvre par défaut dans le navigateur natif : le SDK appelle adapty.openWebUrl({ url, openIn }), en respectant l’option Open in définie dans le builder, et conserve le flow ouvert. Vous pouvez cependant modifier ce comportement dans votre code si nécessaire.
const unsubscribe = await view.setEventHandlers({
onUrlPress(url) {
// Open the URL your own way, e.g. with the Capacitor Browser plugin
Browser.open({ url });
return false; // keep the flow open
},
});Gérer les actions personnalisées
Pour ajouter un bouton qui gère d’autres actions :
- Dans le builder, ajoutez un bouton, assignez-lui l’action Custom et donnez-lui un identifiant.
- Dans le code de votre application, implémentez un handler pour l’identifiant d’action que vous avez créé.
Par exemple, si vous avez un autre ensemble d’offres d’abonnement ou d’achats uniques, vous pouvez ajouter un bouton qui affichera un autre flow ou paywall :
const unsubscribe = await view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'openNewPaywall') {
// Display another flow or paywall
}
},
});Si vous créez des paywalls avec le Paywall Builder d’Adapty, il est essentiel de configurer correctement les boutons :
- Ajoutez un bouton dans le Paywall Builder et assignez-lui une action existante ou créez un identifiant d’action personnalisé.
- Écrivez le code dans votre application pour gérer chaque action assignée.
Ce guide explique comment gérer les actions personnalisées et prédéfinies dans votre code.
Fermer les paywalls
Pour ajouter un bouton qui fermera votre paywall :
- Dans le Paywall Builder, ajoutez un bouton et assignez-lui l’action Close.
- Dans le code de votre application, implémentez un handler pour l’action
closequi ferme le paywall.
Dans le SDK Capacitor, l’action close déclenche par défaut la fermeture du paywall. Vous pouvez cependant modifier ce comportement dans votre code si nécessaire. Par exemple, la fermeture d’un paywall peut déclencher l’ouverture d’un autre.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onCloseButtonPress() {
console.log('User closed paywall');
return true; // Allow the paywall to close
}
});Ouvrir des URL depuis les paywalls
Si vous souhaitez ajouter un groupe de liens (par ex., conditions d’utilisation et restauration d’achat), ajoutez un élément Link dans le Paywall Builder et gérez-le de la même façon que les boutons avec l’action Open URL.
Pour ajouter un bouton qui ouvre un lien depuis votre paywall (par ex., Conditions d’utilisation ou Politique de confidentialité) :
- Dans le Paywall Builder, ajoutez un bouton, assignez-lui l’action Open URL et saisissez l’URL à ouvrir.
- Dans le code de votre application, implémentez un handler pour l’action
openUrlqui ouvre l’URL reçue dans un navigateur.
Dans le SDK Capacitor, l’action window.open déclenche par défaut l’ouverture de l’URL. Vous pouvez cependant modifier ce comportement dans votre code si nécessaire.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onUrlPress(url) {
window.open(url, '_blank');
return false; // Don't close the paywall
},
});Se connecter à l’application
Pour ajouter un bouton qui connecte les utilisateurs à votre application :
- Dans le Paywall Builder, ajoutez un bouton et assignez-lui l’action Login.
- Dans le code de votre application, implémentez un handler pour l’action
loginqui identifie votre utilisateur.
const view = await createPaywallView(paywall);
const unsubscribe = view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'login') {
// Navigate to login screen
console.log('User requested login');
}
}
});Gérer les actions personnalisées
Pour ajouter un bouton qui gère d’autres actions :
- Dans le Paywall Builder, ajoutez un bouton, assignez-lui l’action Custom et donnez-lui un identifiant.
- Dans le code de votre application, implémentez un handler pour l’identifiant d’action que vous avez créé.
Par exemple, si vous avez un autre ensemble d’offres d’abonnement ou d’achats uniques, vous pouvez ajouter un bouton qui affichera un autre paywall :
const unsubscribe = view.setEventHandlers({
onCustomAction(actionId) {
if (actionId === 'openNewPaywall') {
// Display another paywall
}
},
});