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

如果您已使用付费墙编辑工具自定义了付费墙,则无需在移动应用代码中手动渲染即可向用户展示。此类付费墙已包含展示内容及展示方式的完整配置。

本指南适用于**新版付费墙编辑工具付费墙**。不同版本的付费墙编辑工具所设计的付费墙、远程配置付费墙以及观察者模式的展示流程各有不同。

如需获取下文使用的 AdaptyUI.PaywallConfiguration 对象,请参阅获取付费墙编辑工具付费墙及其配置

在 SwiftUI 中展示付费墙

以模态视图展示

如需在设备屏幕上以模态视图形式展示可视化付费墙,请在 SwiftUI 中使用 .paywall 修饰符:

@State var paywallPresented = false // 确保您管理此变量状态,并在希望展示付费墙时将其设为 `true`

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

参数:

参数是否必填描述
isPresented必填用于控制付费墙屏幕是否显示的绑定值。
paywallConfiguration必填包含付费墙视觉详情的 AdaptyUI.PaywallConfiguration 对象。使用 AdaptyUI.paywallConfiguration(for:products:viewConfiguration:observerModeResolver:tagResolver:timerResolver:) 方法。详情请参阅获取付费墙编辑工具付费墙及其配置
didFailPurchase必填Adapty.makePurchase() 失败时调用。
didFinishRestore必填Adapty.restorePurchases() 成功完成时调用。
didFailRestore必填Adapty.restorePurchases() 失败时调用。
didFailRendering必填当界面渲染发生错误时调用。如遇此情况,请联系 Adapty 支持团队
fullScreen可选确定付费墙是以全屏模式还是模态方式显示。默认为 true
didAppear可选当付费墙视图呈现时调用。
didDisappear可选当付费墙视图消失时调用。
didPerformAction可选当用户点击按钮时调用。不同按钮对应不同的动作 ID。其中 closeopenURL 为预定义动作 ID,其他动作 ID 可在编辑工具中自定义。
didSelectProduct可选当产品被用户或系统选中购买时调用。
didStartPurchase可选当用户开始购买流程时调用。
didFinishPurchase可选Adapty.makePurchase() 成功完成时调用。
didFinishWebPaymentNavigation可选当 Web 支付导航完成时调用。
didStartRestore可选当用户开始恢复购买流程时调用。
didFailLoadingProducts可选当产品加载发生错误时调用。返回 true 可重试加载。
didPartiallyLoadProducts可选当产品部分加载完成时调用。
showAlertItem可选用于管理付费墙上方警告项显示的绑定值。
showAlertBuilder可选用于渲染警告视图的函数。
placeholderBuilder可选用于在付费墙加载时渲染占位视图的函数。

有关参数的更多详情,请参阅 iOS - 处理事件

以非模态视图展示

您也可以将付费墙作为导航目标或内联视图嵌入到应用的导航流程中。在 SwiftUI 视图中直接使用 AdaptyPaywallView

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

在 UIKit 中展示付费墙

如需在设备屏幕上展示可视化付费墙,请执行以下步骤:

  1. 使用 .paywallController(for:products:viewConfiguration:delegate:) 方法初始化要展示的可视化付费墙:

    import Adapty
    import AdaptyUI
       
    let visualPaywall = AdaptyUI.paywallController(
        with: <paywall configuration object>,
        delegate: <AdaptyPaywallControllerDelegate>
    )

    请求参数:

    参数是否必填描述
    paywall configuration必填包含付费墙视觉详情的 AdaptyUI.PaywallConfiguration 对象。使用 AdaptyUI.getPaywallConfiguration(forPaywall:locale:) 方法。详情请参阅获取付费墙编辑工具付费墙及其配置
    delegate必填用于监听付费墙事件的 AdaptyPaywallControllerDelegate。详情请参阅处理付费墙事件

    返回值:

    对象描述
    AdaptyPaywallController表示所请求付费墙屏幕的对象
  2. 成功创建对象后,即可在设备屏幕上展示:

    present(visualPaywall, animated: true)

想了解 Adapty SDK 如何集成到移动应用中的真实示例?请查看我们的示例应用,其中展示了完整的配置过程,包括显示付费墙、完成购买以及其他基本功能。