Répondre aux actions des boutons dans le SDK Flutter
Si vous créez des flows ou des paywalls avec le builder 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 que vous avez assignée.
Ce guide explique comment gérer les actions personnalisées et les actions existantes dans votre code.
La fermeture de la vue et l’ouverture des URL sont gérées automatiquement par l’implémentation par défaut de flowViewDidPerformAction, et le SDK lui-même traite les achats et les restaurations. Toutes les autres actions des boutons, comme la connexion ou l’ouverture d’un autre flow, nécessitent l’implémentation de réponses appropriées dans le code de l’application. Notez que la réponse aux achats et restaurations terminés se fait dans les callbacks d’observateur requis — voir Gérer les événements de flow et de paywall.
Fermer les flows et les paywalls
Pour ajouter un bouton qui fermera votre flow ou paywall, dans le builder, ajoutez un bouton et assignez-lui l’action Close. Aucun code n’est requis : l’implémentation par défaut de flowViewDidPerformAction ferme la vue lorsqu’elle reçoit CloseAction.
Le bouton Back du système Android ne ferme plus la vue par défaut. Il est transmis à flowViewDidPerformAction en tant que AndroidSystemBackAction — gérez-le vous-même si vous souhaitez que le bouton Retour ferme le flow ou le paywall.
Surchargez flowViewDidPerformAction si vous avez besoin d’un comportement personnalisé — par exemple, pour fermer également la vue avec le bouton Retour Android, comme dans la v3 :
void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
switch (action) {
case const CloseAction():
case const AndroidSystemBackAction():
view.dismiss();
break;
case OpenUrlAction(:final url, :final openIn):
AdaptyUI().openUrl(url, openIn: openIn);
break;
default:
break;
}
}Surcharger flowViewDidPerformAction remplace entièrement l’implémentation par défaut — conservez les cas CloseAction et OpenUrlAction si vous souhaitez maintenir le comportement par défaut de fermeture et d’ouverture d’URL.
Ouvrir des URL depuis les flows et les paywalls
Si vous souhaitez ajouter un groupe de liens (par exemple, les conditions d’utilisation et la restauration des achats), 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 (par exemple, Terms of use ou Privacy policy), dans le builder, ajoutez un bouton, assignez-lui l’action Open URL et saisissez l’URL à ouvrir.
Aucun code n’est requis : l’implémentation par défaut de flowViewDidPerformAction ouvre l’URL nativement via AdaptyUI().openUrl, en respectant le paramètre de navigateur intégré ou externe défini dans le tableau de bord.
Le comportement par défaut suffit dans la plupart des cas. Si vous souhaitez tout de même ouvrir les URL vous-même, surchargez le gestionnaire :
void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
switch (action) {
case const CloseAction():
view.dismiss();
break;
case OpenUrlAction(url: final url):
// Open the URL in whatever way fits your app
break;
default:
break;
}
}Se connecter à l’application
Pour ajouter un bouton permettant aux utilisateurs de se connecter à votre application :
- Dans le builder, ajoutez un bouton et assignez-lui l’action Login.
- Dans le code de votre application, implémentez un gestionnaire pour l’action
loginqui identifie votre utilisateur.
void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'login'):
// Navigate to your login screen in whatever way fits your app
break;
default:
break;
}
}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 gestionnaire 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 :
void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'openNewPaywall'):
// Display another flow or paywall
break;
default:
break;
}
}Si vous créez des paywalls avec le Paywall Builder 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 que vous avez assignée.
Ce guide explique comment gérer les actions personnalisées et les actions existantes dans votre code.
Seuls les achats et les restaurations sont gérés automatiquement. Toutes les autres actions des boutons, comme la fermeture des paywalls ou l’ouverture de liens, nécessitent l’implémentation de réponses appropriées dans le code de l’application.
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 gestionnaire pour les actions
CloseActionetAndroidSystemBackAction.
Dans le SDK Flutter, les actions CloseAction et AndroidSystemBackAction déclenchent la fermeture du paywall par défaut. Vous pouvez toutefois surcharger ce comportement dans votre code si nécessaire. Par exemple, la fermeture d’un paywall peut déclencher l’ouverture d’un autre.
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case const CloseAction():
case const AndroidSystemBackAction():
view.dismiss();
break;
default:
break;
}
}Ouvrir des URL depuis les paywalls
Si vous souhaitez ajouter un groupe de liens (par exemple, les conditions d’utilisation et la restauration des achats), 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 exemple, Terms of use ou Privacy policy) :
- 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 gestionnaire pour l’action
openUrlqui ouvre l’URL reçue dans un navigateur.
// You have to install url_launcher plugin in order to handle urls:
// https://pub.dev/packages/url_launcher
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case OpenUrlAction(url: final url):
final Uri uri = Uri.parse(url);
launchUrl(uri, mode: LaunchMode.inAppBrowserView);
break;
default:
break;
}
}Se connecter à l’application
Pour ajouter un bouton permettant aux utilisateurs de se connecter à votre application :
- Dans le Paywall Builder, ajoutez un bouton et assignez-lui l’action Login.
- Dans le code de votre application, implémentez un gestionnaire pour l’action
loginqui identifie votre utilisateur.
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'login'):
// Navigate to your login screen in whatever way fits your app
break;
default:
break;
}
}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 gestionnaire 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 :
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'openNewPaywall'):
// Display another paywall
break;
default:
break;
}
}