在 iOS SDK 中展示旧版付费墙编辑工具付费墙

如果您已使用付费墙编辑工具自定义了付费墙,则无需在移动应用代码中手动渲染即可将其展示给用户。此类付费墙同时包含展示内容和展示方式。

本指南仅适用于旧版付费墙编辑工具付费墙,需要 SDK v2.x 或更早版本。针对不同版本付费墙编辑工具设计的付费墙、远程配置付费墙以及 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可选定义自定义标签及其解析值的字典。自定义标签作为付费墙内容中的占位符,可被替换为特定字符串以实现个性化内容。详情请参阅付费墙编辑工具中的自定义标签

闭包参数:

闭包参数描述
didFinishPurchaseAdapty.makePurchase() 成功时,将调用此回调。
didFailPurchaseAdapty.makePurchase() 失败时,将调用此回调。
didFinishRestoreAdapty.restorePurchases() 成功时,将调用此回调。
didFailRestoreAdapty.restorePurchases() 失败时,将调用此回调。
didFailRendering当界面渲染过程中发生错误时,将调用此回调。

其他闭包参数请参阅 iOS - 处理事件

下一步: