实现网页付费墙
开始之前,请确保您已在看板中配置了网页付费墙,并安装了 Adapty SDK 3.6.1 或更高版本。
打开网页付费墙
如果你使用的是自行开发的付费墙,需要通过 SDK 方法来处理网页付费墙。.openWebPaywall 方法:
- 生成一个唯一 URL,让 Adapty 能够将展示给特定用户的付费墙与其被跳转到的网页关联起来。
- 追踪用户何时返回应用,并以短时间间隔调用
.getProfile,以判断用户画像的访问权限是否已更新。 这样,如果付款成功且访问权限已更新,订阅几乎会立即在应用中激活。
try {
await adapty.openWebPaywall({ paywallOrProduct: product });
} catch (error) {
console.error('Failed to open web paywall:', error);
}
openWebPaywall 方法有两个版本:
openWebPaywall({ paywallOrProduct: product })— 根据付费墙生成 URL,并将产品数据附加到 URL 中。openWebPaywall({ paywallOrProduct: paywall })— 根据付费墙生成 URL,不附加产品数据。当 Adapty 付费墙中的产品与网页付费墙中的产品不同时,请使用此版本。
错误处理
| 错误 | 描述 | 建议操作 |
|---|---|---|
| AdaptyError.paywallWithoutPurchaseUrl | 该付费墙未配置网页购买链接 | 检查付费墙是否已在 Adapty 看板中正确配置 |
| AdaptyError.productWithoutPurchaseUrl | 该产品没有网页购买链接 | 在 Adapty 看板中验证产品配置 |
| AdaptyError.failedOpeningWebPaywallUrl | 无法在浏览器中打开该链接 | 检查设备设置,或提供其他购买方式 |
| AdaptyError.failedDecodingWebPaywallUrl | 无法正确编码链接中的参数 | 验证链接参数是否有效且格式正确 |
在应用内浏览器中打开网页付费墙
从 Adapty SDK v3.15 起支持在应用内浏览器中打开网页付费墙。
默认情况下,网页付费墙会在外部浏览器中打开。
为了提供更流畅的用户体验,你可以在应用内浏览器中打开网页付费墙。这样用户无需切换应用,即可在应用内直接完成购买。
要启用此功能,请在 openWebPaywall 中将 openIn 设置为 WebPresentation.BrowserInApp:
try {
await adapty.openWebPaywall({
paywallOrProduct: product,
openIn: WebPresentation.BrowserInApp, // default – WebPresentation.BrowserOutApp
});
} catch (error) {
console.error('Failed to open web paywall:', error);
}