在 Kotlin Multiplatform SDK 中实现 Web 付费墙

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

打开 Web 付费墙

如果您使用的是自行开发的付费墙,需要通过 SDK 方法来处理 Web 付费墙。openWebPaywall 方法的作用:

  1. 生成唯一 URL,使 Adapty 能够将展示给特定用户的付费墙与其跳转到的网页关联起来。
  2. 检测用户何时返回应用,并以短间隔请求 getProfile,以判断用户画像的访问权限是否已更新。

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

用户返回应用后,请刷新 UI 以反映用户画像的更新。Adapty 将接收并处理用户画像更新事件。


viewModelScope.launch {
    Adapty.openWebPaywall(product = product).onSuccess {
        // the web paywall was opened successfully
    }.onError { error ->
        // handle the error
    }
}

openWebPaywall 方法有两个版本:

  1. openWebPaywall(product = product) — 根据付费墙生成 URL,并将产品数据附加到 URL 中。
  2. openWebPaywall(paywall = paywall) — 根据付费墙生成 URL,但不附加产品数据。当 Adapty 付费墙中的产品与网页付费墙中的产品不同时,请使用此版本。

在 SDK v4 中,paywall 参数已替换为 flowPaywall 参数,该参数接受 AdaptyFlowPaywall,即 flow.paywalls 中的某个付费墙变体。详情请参阅迁移指南

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

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

为了提供更流畅的用户体验,你可以在应用内浏览器中打开网页付费墙。这样,网页购买页面将直接显示在你的应用内,用户无需切换应用即可完成交易。

要启用此功能,请将 openIn 参数设置为 AdaptyWebPresentation.IN_APP_BROWSER


viewModelScope.launch {
    Adapty.openWebPaywall(
        product = product,
        openIn = AdaptyWebPresentation.IN_APP_BROWSER // default – EXTERNAL_BROWSER
    ).onSuccess {
        // the web paywall was opened successfully
    }.onError { error ->
        // handle the error
    }
}