在 iOS SDK 中通过 Flow 与付费墙编辑工具启用购买功能

要启用应用内购买,你需要了解三个核心概念:

  • 产品 – 用户可以购买的所有内容(订阅、消耗型商品、永久授权)
  • 流程 – 通过无代码 Flow & Paywall 编辑工具构建的屏幕序列,用于向用户展示产品,SDK 通过 getFlow 获取。如果你更倾向于用自己的代码构建 UI,请改用付费墙 — 详见手动实现付费墙
  • 版位 – 在应用中展示流程的位置和时机(如 mainonboardingsettings)。在看板中将流程绑定到版位后,即可在代码中通过版位 ID 请求。这样可以轻松运行 A/B 测试,向不同用户展示不同流程。

Adapty 为您提供三种在应用中启用购买的方式,请根据应用需求选择其中一种:

实现方式复杂度适用场景
Adapty Flow 与付费墙编辑工具✅ 简单在无代码编辑器中创建完整的、可直接购买的流程。Adapty 自动渲染界面,并在后台处理所有复杂的购买流程、收据验证和订阅管理。
手动创建付费墙🟡 中等你在应用代码中自行实现付费墙 UI,但仍从 Adapty 获取流程对象,以保持产品配置的灵活性。请参阅指南
观察者模式🔴 复杂你已有自己的购买处理基础设施,并希望继续沿用。请注意,观察者模式在 Adapty 中存在一定限制。请参阅文章
Important

以下步骤展示了如何实现在 Adapty Flow & Paywall Builder 中创建的流程。

如果您希望自行构建付费墙 UI,请参阅手动实现付费墙

要在应用代码中展示在 Adapty Flow & Paywall Builder 中创建的流程,您只需:

  1. 获取流程:从 Adapty 获取流程。
  2. 展示流程,让 Adapty 处理购买:在应用中显示对应的视图。
  3. 处理按钮事件:将用户交互与应用的响应逻辑关联起来。例如,当用户点击按钮时,打开链接或关闭流程。

开始之前

在开始之前,请先完成以下步骤:

  1. 在 Adapty 看板中将你的应用连接到 App Store
  2. 在 Adapty 中创建产品
  3. 创建流程为其添加产品
  4. 创建版位并将流程添加到其中
  5. 在你的应用代码中安装并激活 Adapty SDK。本指南使用 Adapty iOS SDK v4 API。

1. 获取流程

你的流程与在看板中配置的版位相关联。版位让你可以针对不同的目标受众展示不同的流程,或运行 A/B 测试

要获取在 Adapty Flow & Paywall Builder 中创建的流程,你需要:

  1. 通过 版位 ID 使用 getFlow 方法获取 flow 对象,并检查它是否包含视图配置。
  2. 使用 getFlowConfiguration 方法获取视图配置。它包含展示流程所需的 UI 元素和样式。

func loadFlow() async {
    let flow = try await Adapty.getFlow(placementId: "YOUR_PLACEMENT_ID")

    guard flow.hasViewConfiguration else {
        print("Flow doesn't have a view configuration")
        return
    }

    flowConfiguration = try await AdaptyUI.getFlowConfiguration(forFlow: flow)
}

2. 展示流程

现在,当你获取到流程配置后,只需添加几行代码即可展示你的流程。

Info

有关如何展示流程的更多详情,请参阅我们的指南

3. 处理按钮操作

当用户点击按钮时,iOS SDK 会自动处理购买、恢复、关闭流程以及打开链接等操作。

不过,其他按钮具有自定义或预定义的 ID,需要在代码中处理相应操作。你也可以根据需要覆盖这些按钮的默认行为。

例如,以下是处理关闭按钮的方式。在 UIKit 中,当 .close 触发时,SDK 会自动关闭控制器——只有在需要自定义行为时才需要覆盖。在 SwiftUI 中,你必须自行将 isPresented 绑定设置为 false

Tip

阅读我们的指南,了解如何处理按钮操作事件

后续步骤

Tip

有疑问或遇到问题?欢迎访问我们的支持论坛,在那里你可以找到常见问题的解答,也可以提出自己的问题。我们的团队和社区随时为你提供帮助!

您的流程已准备好在应用中展示。请在沙盒模式下测试购买,确保能够完成测试购买。

接下来,您需要检查用户的访问等级,以确保向正确的用户展示流程或开放付费功能的访问权限。

完整示例

以下是本指南中所有步骤在应用中整合的完整示例。