Afficher les flows et paywalls - iOS
Si vous avez créé un flow, ou un paywall dans l’ancien Paywall Builder, vous n’avez pas à vous soucier de son rendu dans le code de votre application mobile pour l’afficher à l’utilisateur. Un tel flow ou paywall contient à la fois ce qui doit être affiché et la manière dont cela doit être affiché.
Pour obtenir l’objet AdaptyUI.FlowConfiguration utilisé ci-dessous, consultez Obtenir des flows et des paywalls.
Présenter des flows et des paywalls en SwiftUI
Présenter en tant que vue modale
Pour afficher un flow ou un paywall sur l’écran de l’appareil en tant que vue modale, utilisez le modificateur .flow dans SwiftUI. L’appel minimal nécessite isPresented, flowConfiguration et les cinq callbacks obligatoires :
.flow(
isPresented: $flowPresented,
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didFinishPurchase: { _, _ in /* dismiss, or do nothing to let the flow continue */ },
didFailPurchase: { _, _ in /* handle the error */ },
didFinishRestore: { _ in /* check access level and dismiss */ },
didFailRestore: { _ in /* handle the error */ },
didReceiveError: { _ in flowPresented = false }
)Pour plus de contrôle, ajoutez des callbacks optionnels comme didPerformAction pour gérer les appuis sur les boutons :
@State var flowPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the flow or paywall
var body: some View {
Text("Hello, AdaptyUI!")
.flow(
isPresented: $flowPresented,
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didPerformAction: { action in
switch action {
case .close:
flowPresented = false
default:
// Handle other actions
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 }
)
}Paramètres :
| Paramètre | Requis | Description |
|---|---|---|
| isPresented | requis | Un binding qui détermine si l’écran du flow ou du paywall est affiché. |
| flowConfiguration | requis | Un objet AdaptyUI.FlowConfiguration contenant les détails visuels du flow ou du paywall. Utilisez la méthode AdaptyUI.getFlowConfiguration(forFlow:). Consultez Récupérer les flows et les paywalls pour plus de détails. |
| didFinishPurchase | requis | Déclenché lorsque Adapty.makePurchase() se termine avec succès. Le flow ne se ferme pas automatiquement — définissez votre binding de présentation sur false ici, ou ne faites rien pour laisser le flow continuer après l’achat. |
| didFailPurchase | requis | Déclenché lorsque Adapty.makePurchase() échoue. |
| didFinishRestore | requis | Déclenché lorsque Adapty.restorePurchases() se termine avec succès. |
| didFailRestore | requis | Déclenché lorsque Adapty.restorePurchases() échoue. |
| didReceiveError | requis | Déclenché en cas d’erreur de rendu ou d’erreur d’exécution provenant du script du flow (par exemple, une exception JavaScript, code AdaptyUIError 4105). Pour les erreurs de rendu, contactez le support Adapty. |
| fullScreen | optionnel | Détermine si le flow ou le paywall s’affiche en plein écran ou sous forme de feuille. Par défaut : true. |
| didAppear | optionnel | Déclenché lorsque la vue du flow ou du paywall est présentée. |
| didDisappear | optionnel | Déclenché lorsque la vue du flow ou du paywall est fermée. |
| didPerformAction | optionnel | Déclenché lorsqu’un utilisateur clique sur un bouton. Deux identifiants d’action sont prédéfinis : close et openURL ; les autres sont personnalisés et peuvent être définis dans le builder. |
| didSelectProduct | optionnel | Déclenché lorsqu’un produit est sélectionné pour l’achat par l’utilisateur ou par le système. |
| didStartPurchase | optionnel | Déclenché lorsque l’utilisateur commence le processus d’achat. |
| didFinishWebPaymentNavigation | optionnel | Déclenché lorsque la navigation de paiement web se termine. |
| didStartRestore | optionnel | Déclenché lorsque l’utilisateur lance le processus de restauration. |
| didFailLoadingProducts | optionnel | Déclenché lorsque des erreurs surviennent pendant le chargement des produits. Retournez true pour relancer le chargement. |
| didPartiallyLoadProducts | optionnel | Déclenché lorsque les produits sont partiellement chargés. |
| showAlertItem | optionnel | Un binding qui gère l’affichage des éléments d’alerte au-dessus du flow ou du paywall. |
| showAlertBuilder | optionnel | Une fonction pour afficher la vue d’alerte. |
| placeholderBuilder | optionnel | Une fonction pour afficher la vue de substitution pendant le chargement du flow ou du paywall. Par défaut : un ProgressView. |
Consultez la rubrique iOS - Gestion des événements pour plus de détails sur les paramètres.
Présenter comme une vue non modale
Vous pouvez également présenter des flows et des paywalls comme des destinations de navigation ou des vues intégrées dans le flux de navigation de votre application. Utilisez AdaptyFlowView directement dans vos vues SwiftUI :
AdaptyFlowView(
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didFinishPurchase: { product, purchaseResult in
// Dismiss the view, or do nothing to let the flow continue
},
didFailPurchase: { product, error in
// Handle purchase failure
},
didFinishRestore: { profile in
// Handle successful restore
},
didFailRestore: { error in
// Handle restore failure
},
didReceiveError: { error in
// Handle the error (rendering or JS exception from the flow script).
}
)Afficher les flows et paywalls dans UIKit
Pour afficher le flow ou le paywall à l’écran, procédez comme suit :
-
Initialisez le flow visuel que vous souhaitez afficher à l’aide de la méthode
AdaptyUI.flowController(with:delegate:):import AdaptyUI let visualFlow = try AdaptyUI.flowController( with: <AdaptyUI.FlowConfiguration>, delegate: <AdaptyFlowControllerDelegate> )Paramètres de la requête :
| Paramètre | Présence | Description |
|---|---|---|
| flowConfiguration | required | Un objet AdaptyUI.FlowConfiguration contenant les détails visuels du flow ou du paywall. Utilisez la méthode AdaptyUI.getFlowConfiguration(forFlow:). Consultez la rubrique Obtenir les flows et paywalls pour plus de détails. |
| delegate | required | Un AdaptyFlowControllerDelegate pour écouter les événements du flow et du paywall. Consultez la rubrique Gérer les événements de flow et de paywall pour plus de détails. |
Retourne :
| Objet | Description |
|---|---|
| AdaptyFlowController | Un objet représentant le flow ou le paywall demandé. |
-
Une fois l’objet créé avec succès, vous pouvez l’afficher à l’écran de l’appareil :
present(visualFlow, animated: true)
Vous souhaitez voir un exemple concret d’intégration du SDK Adapty dans une application mobile ? Consultez nos exemples d’applications, qui illustrent la configuration complète, notamment l’affichage des paywalls, les achats et d’autres fonctionnalités de base.
Si vous avez personnalisé un paywall avec le Paywall Builder, vous n’avez pas à vous soucier de son rendu dans le code de votre application mobile pour l’afficher à l’utilisateur. Un tel paywall contient à la fois ce qui doit être affiché et la manière dont cela doit être affiché.
Pour obtenir l’objet AdaptyUI.PaywallConfiguration utilisé ci-dessous, consultez Récupérer les paywalls Paywall Builder et leur configuration.
Afficher les paywalls en SwiftUI
Présenter sous forme de vue modale
Pour afficher le paywall visuel sur l’écran de l’appareil sous forme de vue modale, utilisez le modificateur .paywall dans SwiftUI :
@State var paywallPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the paywall
var body: some View {
Text("Hello, AdaptyUI!")
.paywall(
isPresented: $paywallPresented,
paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
didPerformAction: { action in
switch action {
case .close:
paywallPresented = false
default:
// Handle other actions
break
}
},
didFinishPurchase: { product, profile in paywallPresented = false },
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in paywallPresented = false }
)
}(empty input — nothing to translate)
| Paramètre | Requis | Description |
|---|---|---|
| isPresented | requis | Un binding qui contrôle l’affichage de l’écran du paywall. |
| paywallConfiguration | requis | Un objet AdaptyUI.PaywallConfiguration contenant les détails visuels du paywall. Utilisez la méthode AdaptyUI.paywallConfiguration(for:products:viewConfiguration:observerModeResolver:tagResolver:timerResolver:). Consultez la rubrique Récupérer les paywalls Paywall Builder et leur configuration pour plus de détails. |
| didFailPurchase | requis | Invoqué lorsque Adapty.makePurchase() échoue. |
| didFinishRestore | requis | Invoqué lorsque Adapty.restorePurchases() se termine avec succès. |
| didFailRestore | requis | Invoqué lorsque Adapty.restorePurchases() échoue. |
| didFailRendering | requis | Invoqué si une erreur survient lors du rendu de l’interface. Dans ce cas, contactez le support Adapty. |
| fullScreen | optionnel | Détermine si le paywall s’affiche en plein écran ou sous forme de modal. La valeur par défaut est true. |
| didAppear | optionnel | Invoqué lorsque la vue du paywall est affichée. |
| didDisappear | optionnel | Invoqué lorsque la vue du paywall est fermée. |
| didPerformAction | optionnel | Invoqué lorsqu’un utilisateur clique sur un bouton. Chaque bouton possède un identifiant d’action distinct. Deux identifiants sont prédéfinis : close et openURL, les autres sont personnalisés et peuvent être définis dans le builder. |
| didSelectProduct | optionnel | Invoqué lorsqu’un produit est sélectionné pour l’achat (par l’utilisateur ou par le système). |
| didStartPurchase | optionnel | Invoqué lorsque l’utilisateur démarre le processus d’achat. |
| didFinishPurchase | optionnel | Invoqué lorsque Adapty.makePurchase() se termine avec succès. |
| didFinishWebPaymentNavigation | optionnel | Invoqué lorsque la navigation pour le paiement web se termine. |
| didStartRestore | optionnel | Invoqué lorsque l’utilisateur démarre le processus de restauration. |
| didFailLoadingProducts | optionnel | Invoqué lorsque des erreurs surviennent lors du chargement des produits. Retournez true pour relancer le chargement. |
| didPartiallyLoadProducts | optionnel | Invoqué lorsque les produits sont partiellement chargés. |
| showAlertItem | optionnel | Un binding qui gère l’affichage des éléments d’alerte au-dessus du paywall. |
| showAlertBuilder | optionnel | Une fonction pour afficher la vue d’alerte. |
| placeholderBuilder | optionnel | Une fonction pour afficher la vue de substitution pendant le chargement du paywall. |
Reportez-vous à la rubrique iOS - Gestion des événements pour plus de détails sur les paramètres.
Présenter comme une vue non modale
Vous pouvez également présenter des paywalls comme des destinations de navigation ou des vues intégrées dans le flux de navigation de votre application. Utilisez AdaptyPaywallView directement dans vos vues SwiftUI :
AdaptyPaywallView(
paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
didFailPurchase: { product, error in
// Handle purchase failure
},
didFinishRestore: { profile in
// Handle successful restore
},
didFailRestore: { error in
// Handle restore failure
},
didFailRendering: { error in
// Handle rendering error
}
)Présenter les paywalls dans UIKit
Pour afficher le paywall visuel sur l’écran de l’appareil, procédez comme suit :
-
Initialisez le paywall visuel que vous souhaitez afficher en utilisant la méthode
.paywallController(for:products:viewConfiguration:delegate:):import AdaptyUI let visualPaywall = AdaptyUI.paywallController( with: <paywall configuration object>, delegate: <AdaptyPaywallControllerDelegate> )Paramètres de la requête :
| Paramètre | Présence | Description |
|---|---|---|
| paywall configuration | required | Un objet AdaptyUI.PaywallConfiguration contenant les détails visuels du paywall. Utilisez la méthode AdaptyUI.getPaywallConfiguration(forPaywall:locale:). Consultez la rubrique Récupérer les paywalls du Paywall Builder et leur configuration pour plus de détails. |
| delegate | required | Un AdaptyPaywallControllerDelegate pour écouter les événements du paywall. Consultez la rubrique Gestion des événements du paywall pour plus de détails. |
Retourne :
| Objet | Description |
|---|---|
| AdaptyPaywallController | Un objet représentant l’écran de paywall demandé |
-
Une fois l’objet créé avec succès, vous pouvez l’afficher à l’écran de l’appareil :
present(visualPaywall, animated: true)
Vous voulez voir un exemple concret d’intégration du SDK Adapty dans une application mobile ? Consultez nos exemples d’applications, qui illustrent la configuration complète, notamment l’affichage des paywalls, les achats et d’autres fonctionnalités de base.