在 Flutter SDK 中以观察者模式展示流程
如果你使用观察者模式,则需要自行负责购买逻辑。但你可以将付费墙 UI 委托给流程与付费墙编辑工具。
在编辑工具中设计界面,Adapty SDK 将原生渲染。随时更新文案、布局和定价,无需发布新版本。
本指南介绍如何展示流程并处理购买回调。如果由 Adapty 代为完成购买,请参阅展示流程与付费墙。
开始之前
你需要:
- Adapty Flutter SDK 4.0 或更高版本:早期版本无法渲染流程。如需迁移现有应用,请参阅迁移指南。
observerMode设置为true:请参阅 Flutter SDK 安装指南。- 初始商店集成:配置 Adapty 与 App Store 的集成以及与 Google Play 的集成。
- 已发布的含产品流程:在流程与付费墙编辑工具中构建,并为其分配产品。
- 流程版位:创建版位并将您的流程分配给它。
- 在应用中获取流程:在展示之前,先获取流程及其配置。
实现
在 Observer 模式下,SDK 不会替你执行购买操作。当用户点击 Adapty 渲染的流程中的购买或恢复按钮时,SDK 会调用你的 AdaptyUIObserverModeResolver——请在其中使用你自己的代码执行购买或恢复操作。
-
实现
AdaptyUIObserverModeResolver:class MyObserverModeResolver extends AdaptyUIObserverModeResolver { @override void observerModeDidInitiatePurchase( AdaptyUIFlowView view, AdaptyPaywallProduct product, void Function() onStartPurchase, void Function() onFinishPurchase, ) { onStartPurchase(); // the view shows its loading indicator // make the purchase with your own code, then: onFinishPurchase(); // the view hides the loading indicator } @override void observerModeDidInitiateRestore( AdaptyUIFlowView view, void Function() onStartRestore, void Function() onFinishRestore, ) { onStartRestore(); // restore purchases with your own code, then: onFinishRestore(); } }
observerModeDidInitiatePurchase 方法会通知你用户已发起购买,observerModeDidInitiateRestore 则通知你用户已发起恢复购买。收到通知后,请触发你自定义的购买或恢复流程。
此外,请记得调用以下回调,将购买或恢复流程的进度通知给 AdaptyUI。这对于正确的流程行为(例如显示加载动画等)是必要的:
| 回调 | 描述 |
|---|---|
| onStartPurchase() | 该回调应被调用,以通知 AdaptyUI 购买已开始。 |
| onFinishPurchase() | 该回调应被调用,以通知 AdaptyUI 购买已完成。 |
| onStartRestore() | 该回调应被调用,以通知 AdaptyUI 恢复已开始。 |
| onFinishRestore() | 该回调应被调用,以通知 AdaptyUI 恢复已完成。 |
-
在展示任何页面前注册 resolver:
AdaptyUI().setObserverModeResolver(MyObserverModeResolver()); -
按常规方式创建并展示流程视图:获取流程并创建其视图,然后展示它。无需额外参数——一旦注册了 resolver,Adapty 渲染的所有流程都会通过它来路由购买和恢复操作。
Warning
不要忘记上报交易并将其与付费墙关联。否则,Adapty 将无法识别该交易,也无法确定购买来源的付费墙。