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 :

  1. Ajoutez un bouton dans le builder et assignez-lui soit une action existante, soit créez un identifiant d’action personnalisé.
  2. É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.

Warning

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.

Info

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;
    }
}
Warning

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

Tip

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 :

  1. Dans le builder, ajoutez un bouton et assignez-lui l’action Login.
  2. Dans le code de votre application, implémentez un handler pour l’action login qui 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 :

  1. Dans le builder, ajoutez un bouton, assignez-lui l’action Custom et donnez-lui un ID.
  2. 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 :

  1. Dans l’ancien Paywall Builder, ajoutez un bouton et attribuez-lui une action prédéfinie ou un identifiant d’action personnalisée.
  2. É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.

Warning

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 :

  1. Dans le Paywall Builder, ajoutez un bouton et attribuez-lui l’action Close.
  2. Dans le code de votre application, implémentez un gestionnaire pour les actions CloseAction et AndroidSystemBackAction.
Info

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

Tip

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) :

  1. Dans le paywall builder, ajoutez un bouton, assignez-lui l’action Open URL et saisissez l’URL à ouvrir.
  2. Dans le code de votre application, implémentez un gestionnaire pour l’action openUrl qui 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 :

  1. Dans le Paywall Builder, ajoutez un bouton et assignez-lui l’action Login.
  2. Dans le code de votre application, implémentez un gestionnaire pour l’action login qui 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 :

  1. Dans le Paywall Builder, ajoutez un bouton, attribuez-lui l’action Custom, puis donnez-lui un identifiant.
  2. 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;
   }
}