在 iOS SDK 中展示旧版付费墙编辑工具付费墙
如果您已使用付费墙编辑工具自定义了付费墙,则无需在移动应用代码中手动渲染即可将其展示给用户。此类付费墙同时包含展示内容和展示方式。
本指南仅适用于旧版付费墙编辑工具付费墙,需要 SDK v2.x 或更早版本。针对不同版本付费墙编辑工具设计的付费墙、远程配置付费墙以及 Observer 模式,展示付费墙的流程有所不同。
- 如需展示新版付费墙编辑工具付费墙,请参阅 iOS - 展示新版付费墙编辑工具付费墙。
- 如需展示远程配置付费墙,请参阅 渲染由远程配置设计的付费墙。
- 如需展示 Observer 模式付费墙,请参阅 iOS - 在 Observer 模式下展示付费墙编辑工具付费墙。
在 Swift 中展示付费墙
要在设备屏幕上显示可视化付费墙,首先需要对其进行配置。为此,请使用 .paywallController(for:products:viewConfiguration:delegate:) 方法:
import Adapty
import AdaptyUI
let visualPaywall = AdaptyUI.paywallController(
for: <paywall object>,
products: <paywall products array>,
viewConfiguration: <LocalizedViewConfiguration>,
delegate: <AdaptyPaywallControllerDelegate>
)
请求参数:
| 参数 | 是否必填 | 描述 |
|---|---|---|
| Paywall | 必填 | 一个 AdaptyPaywall 对象,用于获取所需付费墙的控制器。 |
| Products | 可选 | 提供 AdaptyPaywallProducts 数组以优化产品在屏幕上的显示时机。若传入 nil,AdaptyUI 将自动获取所需产品。 |
| ViewConfiguration | 必填 | 包含付费墙视觉详情的 AdaptyUI.LocalizedViewConfiguration 对象。请使用 AdaptyUI.getViewConfiguration(paywall:locale:) 方法。详情请参阅获取付费墙编辑工具付费墙及其配置。 |
| Delegate | 必填 | 用于监听付费墙事件的 AdaptyPaywallControllerDelegate。详情请参阅处理付费墙事件。 |
| TagResolver | 可选 | 定义自定义标签及其解析值的字典。自定义标签作为付费墙内容中的占位符,可被替换为特定字符串以实现个性化内容。详情请参阅付费墙编辑工具中的自定义标签。 |
返回值:
| 对象 | 描述 |
|---|---|
| AdaptyPaywallController | 表示所请求付费墙屏幕的对象。 |
对象成功创建后,您可以将其显示在设备屏幕上:
present(visualPaywall, animated: true)
在 SwiftUI 中展示付费墙
要在设备屏幕上显示可视化付费墙,请在 SwiftUI 中使用 .paywall 修饰符:
@State var paywallPresented = false
var body: some View {
Text("Hello, AdaptyUI!")
.paywall(
isPresented: $paywallPresented,
paywall: <paywall object>,
configuration: <LocalizedViewConfiguration>,
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 }
)
}
请求参数:
| 参数 | 是否必填 | 描述 |
|---|---|---|
| Paywall | 必填 | 一个 AdaptyPaywall 对象,用于获取所需付费墙的控制器。 |
| Product | 可选 | 提供 AdaptyPaywallProducts 数组以优化产品在屏幕上的显示时机。若传入 nil,AdaptyUI 将自动获取所需产品。 |
| Configuration | 必填 | 包含付费墙视觉详情的 AdaptyUI.LocalizedViewConfiguration 对象。请使用 AdaptyUI.getViewConfiguration(paywall:locale:) 方法。详情请参阅获取付费墙编辑工具付费墙及其配置。 |
| TagResolver | 可选 | 定义自定义标签及其解析值的字典。自定义标签作为付费墙内容中的占位符,可被替换为特定字符串以实现个性化内容。详情请参阅付费墙编辑工具中的自定义标签。 |
闭包参数:
| 闭包参数 | 描述 |
|---|---|
| didFinishPurchase | 当 Adapty.makePurchase() 成功时,将调用此回调。 |
| didFailPurchase | 当 Adapty.makePurchase() 失败时,将调用此回调。 |
| didFinishRestore | 当 Adapty.restorePurchases() 成功时,将调用此回调。 |
| didFailRestore | 当 Adapty.restorePurchases() 失败时,将调用此回调。 |
| didFailRendering | 当界面渲染过程中发生错误时,将调用此回调。 |
其他闭包参数请参阅 iOS - 处理事件。
下一步: