Répondre aux actions des flows - iOS
Si vous créez des flows ou des paywalls avec l’Adapty Flow Builder ou le Paywall Builder, 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 ID d’action personnalisé.
- Écrivez le code dans votre app pour gérer chaque action assignée.
Ce guide montre comment gérer les actions personnalisées et les actions existantes dans votre code.
Seules la fermeture des flows/paywalls et l’ouverture des URL sont gérées automatiquement. Toutes les autres actions de bouton nécessitent une implémentation appropriée dans le code de l’app.
Le SDK iOS peut répondre aux demandes de permissions système, comme les notifications push ou l’accès à la caméra, via un AdaptySystemRequestsHandler. Les flows ne déclenchent pas encore ces demandes, vous n’avez donc pas besoin de les gérer pour l’instant.
Fermer les flows et les paywalls
Pour ajouter un bouton qui ferme votre flow ou paywall :
- Dans le builder, ajoutez un bouton et assignez-lui l’action Close.
- Dans le code de votre app, implémentez un gestionnaire pour l’action
close.
Dans le SDK iOS, l’action close déclenche par défaut la fermeture du flow ou du paywall. Vous pouvez toutefois remplacer ce comportement dans votre code si nécessaire. Par exemple, fermer un flow peut déclencher l’ouverture d’un autre.
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case .close:
flowPresented = false // dismiss the flow or paywall
default:
break
}
},
didFinishPurchase: { product, purchaseResult in /* dismiss, or do nothing to let the flow continue */ },
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didReceiveError: { error in flowPresented = false }
)Ouvrir des URL depuis les flows et 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 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. Terms of use ou Privacy policy) :
- Dans le builder, ajoutez un bouton, assignez-lui l’action Open URL et saisissez l’URL à ouvrir.
- Dans le code de votre app, implémentez un gestionnaire pour l’action
openURLqui ouvre l’URL reçue dans un navigateur.
Dans le SDK iOS, l’action openURL déclenche par défaut l’ouverture de l’URL. Vous pouvez toutefois remplacer ce comportement dans votre code si nécessaire.
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
default:
break
}
},
didFinishPurchase: { product, purchaseResult in /* dismiss, or do nothing to let the flow continue */ },
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didReceiveError: { error in flowPresented = false }
)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 avez un autre ensemble d’offres d’abonnement ou d’achats uniques, vous pouvez ajouter un bouton qui affiche un autre flow ou 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
}
},
didFinishPurchase: { product, purchaseResult in /* dismiss, or do nothing to let the flow continue */ },
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didReceiveError: { error in flowPresented = false }
)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 ID d’action personnalisé.
- Écrivez le code dans votre app pour gérer chaque action assignée.
Ce guide montre comment gérer les actions personnalisées et les actions existantes dans votre code.
Seules les achats, les restaurations, la fermeture des paywalls et l’ouverture des URL sont gérés automatiquement. Toutes les autres actions de bouton nécessitent une implémentation appropriée dans le code de l’app.
Fermer les paywalls
Pour ajouter un bouton qui ferme votre paywall :
- Dans le Paywall Builder, ajoutez un bouton et assignez-lui l’action Close.
- Dans le code de votre app, implémentez un gestionnaire pour l’action
closequi ferme le paywall.
Dans le SDK iOS, l’action close déclenche par défaut la fermeture du paywall. Vous pouvez toutefois remplacer ce comportement dans votre code si nécessaire. Par exemple, fermer un paywall peut déclencher l’ouverture d’un autre.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .close:
controller.dismiss(animated: true) // default behavior
break
}
}Ouvrir des URL 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 app, implémentez un gestionnaire pour l’action
openUrlqui ouvre l’URL reçue dans un navigateur.
Dans le SDK iOS, l’action openUrl déclenche par défaut l’ouverture de l’URL. Vous pouvez toutefois remplacer ce comportement dans votre code si nécessaire.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
break
}
}Se connecter à l’app
Pour ajouter un bouton qui connecte les utilisateurs à votre app :
- Dans le Paywall Builder, ajoutez un bouton et assignez-lui l’action Login.
- Dans le code de votre app, implémentez un gestionnaire pour l’action
loginqui identifie votre utilisateur.
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)
}
}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 ID.
- Dans le code de votre app, implémentez un gestionnaire pour l’ID 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 affiche un autre paywall :
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .custom(id):
if id == "openNewPaywall" {
// Display another paywall
}
}
break
}
}