在 Flutter SDK 的 Observer 模式下展示流程

如果你使用编辑工具自定义了流程或付费墙,就无需在移动应用代码中手动处理其渲染逻辑来向用户展示它。这类流程或付费墙本身已包含展示内容和展示方式的完整定义。

本节仅适用于观察者模式。如果你不在观察者模式下工作,请参阅展示流程与付费墙主题。

此功能需要 Adapty Flutter SDK 4.0 或更高版本——此前仅在 iOS 和 Android 原生 SDK 中提供。请参阅迁移指南进行升级。

开始展示流程前(点击展开)
  1. 完成 Adapty 与 App Store 以及与 Google Play 的初始集成。 2. 安装并配置 Adapty SDK,务必将 observerMode 参数设置为 true。请参阅 Flutter SDK 安装指南。 3. 在 Adapty 看板中创建产品。 4. 在编辑工具中配置流程或付费墙,并为其分配产品。 5. 创建版位并将流程或付费墙分配给对应版位。 6. 在移动端应用代码中获取流程及其配置

在观察者模式下,SDK 不会代您发起购买。当用户点击 Adapty 渲染的流程或付费墙中的购买或恢复按钮时,SDK 会调用您的 AdaptyUIObserverModeResolver——请在其中用您自己的代码执行购买或恢复操作。

  1. 实现 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 恢复购买已完成。
  1. 在展示任何界面之前注册解析器:

    AdaptyUI().setObserverModeResolver(MyObserverModeResolver());
  2. 按常规方式创建并展示流程视图:获取流程并创建其视图,然后展示它。无需额外参数——一旦注册了解析器,所有由 Adapty 渲染的流程或付费墙都会通过它来处理购买和恢复操作。

别忘了上报交易并将其关联到付费墙。否则,Adapty 将无法识别该交易,也无法确定购买来源的付费墙。