Répondre aux actions des boutons dans le SDK Flutter
Si vous créez des flows ou des paywalls à l’aide du builder Adapty, il est essentiel de configurer correctement les boutons :
- Ajoutez un bouton dans le builder et assignez-lui soit une action existante, soit 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 existantes dans votre code.
La fermeture de la vue et l’ouverture des URLs 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 de bouton, comme la connexion ou l’ouverture d’un autre flow, nécessitent d’implémenter les 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 paywall.
Fermer les flows et les paywalls
Pour ajouter un bouton permettant de fermer votre flow ou paywall, ajoutez un bouton dans le builder et assignez-lui l’action Close. Aucun code n’est nécessaire : 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 sous la forme 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 la vue avec le bouton retour système 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;
}
}Remplacer flowViewDidPerformAction remplace entièrement l’implémentation par défaut — conservez les cas CloseAction et OpenUrlAction si vous souhaitez préserver le comportement par défaut de fermeture et d’ouverture d’URL.
Ouvrir des URLs 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 que vous souhaitez 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 gérer l’ouverture des 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 handler 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 ID.
- Dans le code de votre app, implémentez un gestionnaire pour l’ID d’action que vous avez créé.
Par exemple, si vous disposez d’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 d’Adapty, il est essentiel de configurer correctement les boutons :
- Dans l’ancien Paywall Builder, ajoutez un bouton et attribuez-lui une action prédéfinie ou un identifiant d’action personnalisée.
- Écrivez du code dans votre application pour gérer chaque action que vous avez attribuée.
Ce guide explique comment gérer les actions personnalisées et prédéfinies dans votre code.
Seuls les achats et les restaurations sont gérés automatiquement. Toutes les autres actions (fermeture des paywalls, ouverture de liens, etc.) nécessitent d’implémenter les réponses appropriées dans le code de l’application.
Fermer les paywalls
Pour ajouter un bouton qui ferme votre paywall :
- Dans le Paywall Builder, ajoutez un bouton et attribuez-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 remplacer 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 URLs depuis les paywalls
Si vous souhaitez ajouter un groupe de liens (par ex., conditions d’utilisation et 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 ex., 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, attribuez-lui l’action Custom, puis 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;
}
}