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

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

本指南适用于旧版付费墙编辑工具付费墙,需要 Adapty SDK 2.x 及以下版本。新版付费墙编辑工具需要 Adapty SDK 3.0 或更高版本,目前尚不支持 Unity。

要控制或监控移动应用中付费墙屏幕上发生的流程,请实现 AdaptyUIEventListener 方法,并在展示任何屏幕之前注册观察者:

AdaptyUI.SetEventListener(this);

用户生成的事件

操作

当用户执行某些操作时,将调用此方法:

public void OnPerformAction(AdaptyUI.View view, AdaptyUI.Action action) {
  switch (action.Type) {
    case AdaptyUI.ActionType.Close:
      view.Dismiss(null);
      break;
    case AdaptyUI.ActionType.OpenUrl:
      var urlString = action.Value;
      if (urlString != null {
      	Application.OpenURL(urlString); 
      }
    default:
      // handle other events
      break;
  }
}

支持以下操作类型:

  • Close
  • OpenUrl
  • Custom
  • AndroidSystemBack

至少需要实现对 closeopenURL 的响应。

例如,如果用户点击关闭按钮,将触发 Close 操作,您应该关闭付费墙。
请注意,AdaptyUI.Action 具有可选的 value 属性:在 OpenUrlCustom 的情况下请关注此属性。

💡 登录操作

如果您在看板中配置了登录操作,则应实现对值为 "login"Custom 操作的响应。

产品选择

当某个产品被选择购买(由用户或系统选择)时,将调用此方法。

public void OnSelectProduct(AdaptyUI.View view, Adapty.PaywallProduct product) {
}

开始购买

当用户发起购买流程时,将调用此方法。

public void OnStartPurchase(AdaptyUI.View view, Adapty.PaywallProduct product) {
}

取消购买

当用户发起购买流程但手动中断时,将调用此方法。当 Adapty.MakePurchase() 函数以 .paymentCancelled 错误完成时,会触发此事件:

public void OnCancelPurchase(AdaptyUI.View view, Adapty.PaywallProduct product) {
}

购买成功

Adapty.MakePurchase() 成功时,将调用此方法:

public void OnFinishPurchase(AdaptyUI.View view, 
                             Adapty.PaywallProduct product, 
                             Adapty.Profile profile) {
}

建议在此情况下关闭屏幕。

购买失败

Adapty.MakePurchase() 失败时,将调用此方法:

public void OnFailPurchase(AdaptyUI.View view, 
                           Adapty.PaywallProduct product, 
                           Adapty.Error error) {
}

恢复购买成功

Adapty.RestorePurchases() 成功时,将调用此方法:

public void OnFinishRestore(AdaptyUI.View view, Adapty.Profile profile) {
}

如果用户拥有所需的 accessLevel,建议关闭屏幕。请参阅订阅状态主题以了解如何检查。

恢复购买失败

Adapty.RestorePurchases() 失败时,将调用此方法:

public void OnFailRestore(AdaptyUI.View view, Adapty.Error error) {
}

数据获取与渲染

产品加载错误

如果您在初始化期间未传递产品数组,AdaptyUI 将自行从服务器检索必要的对象。在这种情况下,该操作可能失败,AdaptyUI 将通过调用此方法报告错误:

public void OnFailLoadingProducts(AdaptyUI.View view, Adapty.Error error) {
}

渲染错误

如果在界面渲染过程中发生错误,将通过调用此方法报告:

public void OnFailRendering(AdaptyUI.View view, Adapty.Error error) {
}

正常情况下不应出现此类错误,如果您遇到此类错误,请告知我们。