在 Observer 模式下展示流程 - Unity
如果你使用 Observer 模式,则需要自行处理购买逻辑。但你可以将付费墙 UI 委托给 Flow & Paywall Builder。
在编辑工具中设计屏幕,Adapty SDK 将其原生渲染。随时更新文案、布局和定价,无需发布新版本。
本指南介绍如何展示流程并处理购买回调。如果由 Adapty 代为完成购买流程,请参阅展示流程与付费墙。
开始之前
您需要:
- Adapty Unity SDK 4.1 或更高版本:旧版本无法渲染流程。如需迁移现有应用,请参阅迁移指南。
- 在配置构建器上调用
SetObserverMode(true):请参阅 Unity SDK 安装指南。 - 初始商店集成:完成 Adapty 与 App Store 及 Google Play 的集成设置。
- 已发布且包含产品的流程:在流程与付费墙编辑工具中构建,并为其分配产品。
- 流程版位:创建一个版位并将您的流程分配到该版位。
- 在应用中获取流程:在展示流程前,先获取流程及其配置。
实现
在 Observer 模式下,SDK 不会替你发起购买。当用户在 Adapty 渲染的流程中点击购买或恢复按钮时,SDK 会调用你的 IAdaptyUIObserverModeResolver——请在其中使用你自己的代码执行购买或恢复操作。
-
实现
IAdaptyUIObserverModeResolver接口:using System; using AdaptySDK; public class MyObserverModeResolver : IAdaptyUIObserverModeResolver { public void FlowViewDidInitiatePurchase( AdaptyUIFlowView view, AdaptyPaywallProduct product, Action onStartPurchase, Action onFinishPurchase ) { onStartPurchase(); // the view shows its loading indicator // make the purchase with your own code, // then report the transaction to Adapty and call: onFinishPurchase(); // the view hides the loading indicator } public void FlowViewDidInitiateRestore( AdaptyUIFlowView view, Action onStartRestore, Action onFinishRestore ) { onStartRestore(); // restore purchases with your own code, then: onFinishRestore(); } }
FlowViewDidInitiatePurchase 方法会通知您用户已发起购买,FlowViewDidInitiateRestore 则通知用户已发起恢复。请在收到通知后触发您的自定义购买或恢复流程。
同时,请记得调用以下回调方法,以便将购买或恢复的处理进度通知 AdaptyUI。这对于流程的正常运行(如显示加载状态等)是必要的:
| 回调 | 描述 |
|---|---|
| onStartPurchase() | 调用此回调以通知 AdaptyUI 购买已开始。 |
| onFinishPurchase() | 调用此回调以通知 AdaptyUI 购买已完成。 |
| onStartRestore() | 调用此回调以通知 AdaptyUI 恢复已开始。 |
| onFinishRestore() | 调用此回调以通知 AdaptyUI 恢复已完成。 |
流程保持开放状态,等待你的代码运行完毕——购买或恢复成功后,请自行关闭它。
-
在展示任何屏幕之前注册解析器:
Adapty.SetObserverModeResolver(new MyObserverModeResolver());如果未注册解析器,流程视图将无法把购买请求传递给你的代码,用户点击购买按钮后什么都不会发生。
-
像往常一样创建并展示流程视图:获取流程并创建其视图,然后展示它。无需额外参数——注册解析器后,每个 Adapty 渲染的流程都会通过它来路由购买和恢复操作。
Warning
不要忘记上报交易并将其与付费墙关联。否则,Adapty 将无法识别该交易,也无法确定购买来源的付费墙。