在 Flutter SDK 中实现 web 付费墙
在开始之前,请确保您已在看板中配置了 web 付费墙,并安装了 Adapty SDK 3.6.1 或更高版本。
如果您使用的是自行开发的付费墙,则需要使用 SDK 方法处理 web 付费墙。.openWebPaywall 方法:
- 生成唯一 URL,使 Adapty 能够将向特定用户展示的付费墙与他们被重定向到的网页关联起来。
- 跟踪用户何时返回应用,然后以短时间间隔请求
.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 方法有两个版本:
openWebPaywall(product)通过付费墙生成 URL,并将产品数据添加到 URL 中。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
}