在旧版 React Native SDK 中处理付费墙事件

使用付费墙编辑工具配置的付费墙无需额外代码即可完成购买和恢复购买操作。但是,它们会生成一些您的应用可以响应的事件。这些事件包括按钮点击(关闭按钮、URL、产品选择等)以及付费墙上购买相关操作的通知。请参阅下文了解如何响应这些事件。

本指南仅适用于旧版付费墙编辑工具付费墙,需要使用 Adapty SDK v2.x 及以下版本。如需了解在 Adapty SDK v3.0 或更高版本中展示使用新版付费墙编辑工具设计的付费墙,请参阅 React Native - 处理使用新版付费墙编辑工具设计的付费墙事件

要控制或监控移动应用中付费墙界面上发生的流程,请实现 view.registerEventHandlers 方法:

import {createPaywallView} from '@adapty/react-native-ui';

const view = await createPaywallView(paywall);

const unsubscribe = view.registerEventHandlers({
  onCloseButtonPress() {
    return true;
  },
  onPurchaseCompleted(profile) {
    return true;
  },
  onPurchaseStarted(product) { /***/},
  onPurchaseCancelled(product) { /***/ },
  onPurchaseFailed(error) { /***/ },
  onRestoreCompleted(profile) { /***/ },
  onRestoreFailed(error) { /***/ },
  onProductSelected() { /***/},
  onRenderingFailed(error) { /***/ },
  onLoadingProductsFailed(error) { /***/ },
  onUrlPress(url) { /* handle url */ },
});

您可以只注册需要的事件处理程序,忽略不需要的。这样,未使用的事件监听器将不会被创建。

请注意,您至少需要实现对 onCloseButtonPressonUrlPress 这两个事件的响应。

事件处理程序返回一个布尔值。如果返回 true,则认为展示流程已完成,付费墙界面将关闭,并移除该视图的所有事件监听器。

请注意,上述示例中的 onCloseButtonPressonPurchaseCompletedonRestoreCompleted 均返回 true——这是它们的默认行为,您可以进行覆盖。

事件处理程序

事件处理程序描述
onCloseButtonPress如果关闭按钮可见且用户点击了它,此方法将被调用。建议在此处理程序中关闭付费墙界面。
onPurchaseCompleted如果用户购买成功,此方法将被调用,并提供更新后的 AdaptyProfile。建议在此处理程序中关闭付费墙视图。
onPurchaseStarted如果用户点击”购买”操作按钮开始购买流程,此方法将被调用,并提供 AdaptyPaywallProduct
onPurchaseCancelled如果用户发起购买流程后手动中断,此方法将被调用,并提供 AdaptyPaywallProduct
onPurchaseFailed如果购买流程失败,此方法将被调用,并提供 AdaptyError
onRestoreCompleted如果用户的购买恢复成功,此方法将被调用,并提供更新后的 AdaptyProfile。如果用户拥有所需的 accessLevel,建议关闭该界面。请参阅订阅状态主题了解如何检查。
onRestoreFailed如果恢复流程失败,此方法将被调用,并提供 AdaptyError
onProductSelected当付费墙视图中任意产品被选中时,此方法将被调用,以便您监控用户在购买前的选择。
onRenderingFailed如果视图渲染过程中出现错误,此方法将被调用,并提供 AdaptyError。此类错误通常不应发生,如果遇到,请联系我们。
onLoadingProductsFailed如果您在创建视图时未设置 prefetchProducts: true,AdaptyUI 将自行从服务器获取必要的对象。如果此操作失败,此方法将被调用,并提供 AdaptyError