在 Flutter SDK 中实现 web 付费墙

在开始之前,请确保您已在看板中配置了 web 付费墙,并安装了 Adapty SDK 3.6.1 或更高版本。

如果您使用的是自行开发的付费墙,则需要使用 SDK 方法处理 web 付费墙。.openWebPaywall 方法:

  1. 生成唯一 URL,使 Adapty 能够将向特定用户展示的付费墙与他们被重定向到的网页关联起来。
  2. 跟踪用户何时返回应用,然后以短时间间隔请求 .getProfile,以确定用户画像的访问权限是否已更新。

这样,如果付款成功且访问权限已更新,订阅几乎会立即在应用中激活。

try {
  await Adapty().openWebPaywall(product: <YOUR_PRODUCT>);
  // The web paywall will be opened
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle other errors
}

openWebPaywall 方法有两个版本:

  1. openWebPaywall(product) 通过付费墙生成 URL,并将产品数据添加到 URL 中。
  2. openWebPaywall(paywall) 通过付费墙生成 URL,但不将产品数据添加到 URL 中。当 Adapty 付费墙中的产品与 web 付费墙中的产品不同时使用此方法。

处理错误

错误描述建议操作
AdaptyError.paywallWithoutPurchaseUrl付费墙未配置 web 购买 URL检查付费墙是否已在 Adapty 看板中正确配置
AdaptyError.productWithoutPurchaseUrl产品没有 web 购买 URL在 Adapty 看板中验证产品配置
AdaptyError.failedOpeningWebPaywallUrl无法在浏览器中打开 URL检查设备设置或提供其他购买方式
AdaptyError.failedDecodingWebPaywallUrl无法正确编码 URL 中的参数验证 URL 参数是否有效且格式正确

在应用内浏览器中打开 web 付费墙

从 Adapty SDK v. 3.15 开始支持在应用内浏览器中打开 web 付费墙。

默认情况下,web 付费墙在外部浏览器中打开。

为了提供无缝的用户体验,您可以在应用内浏览器中打开 web 付费墙。这将在您的应用内显示 web 购买页面,让用户无需切换应用即可完成交易。

要启用此功能,请将 in 参数设置为 .inAppBrowser

try {
  await Adapty().openWebPaywall(
    product: <YOUR_PRODUCT>,
    openIn: AdaptyWebPresentation.inAppBrowser,
  );
  // The web paywall will be opened in the in-app browser
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle other errors
}