在 Android SDK 中获取旧版付费墙编辑工具付费墙

在 Adapty 看板中使用付费墙编辑工具为付费墙设计好视觉效果后,您可以在 Android 应用中展示该付费墙。此流程的第一步是获取与版位关联的付费墙及其视图配置,具体如下所述。

本指南仅适用于旧版付费墙编辑工具付费墙,这类付费墙需要 SDK v2.x 或更早版本。对于使用不同版本付费墙编辑工具设计的付费墙以及远程配置付费墙,获取付费墙的流程有所不同。

在 Android 应用中开始展示付费墙之前(点击展开)
  1. 在 Adapty 看板中创建您的产品
  2. 在 Adapty 看板中创建付费墙并将产品添加到付费墙中
  3. 在 Adapty 看板中创建版位并将付费墙添加到版位中
  4. 在您的 Android 应用中安装 Adapty SDK 和 AdaptyUI SDK

获取使用付费墙编辑工具设计的付费墙

如果您已使用付费墙编辑工具设计了付费墙,则无需在 Android 应用代码中手动处理渲染逻辑来向用户展示。此类付费墙同时包含展示内容和展示方式。不过,您仍需通过版位获取其 ID 及视图配置,然后在 Android 应用中进行展示。

为确保最佳性能,务必尽早获取付费墙及其视图配置,以便在向用户展示前有足够的时间完成图片下载。

使用 getPaywall 方法获取付费墙:

import com.adapty.utils.seconds

...

Adapty.getPaywall("YOUR_PLACEMENT_ID", locale = "en", loadTimeout = 10.seconds) { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val paywall = result.value
            // the requested paywall
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // handle the error
        }
    }
}

Java 示例:

import com.adapty.utils.TimeInterval;

...

Adapty.getPaywall("YOUR_PLACEMENT_ID", "en", TimeInterval.seconds(10), result -> {
    if (result instanceof AdaptyResult.Success) {
        AdaptyPaywall paywall = ((AdaptyResult.Success<AdaptyPaywall>) result).getValue();
        // the requested paywall
      
    } else if (result instanceof AdaptyResult.Error) {
        AdaptyError error = ((AdaptyResult.Error) result).getError();
        // handle the error
      
    }
});
参数是否必填说明
placementId必填目标版位的标识符。该值为您在 Adapty 看板中创建版位时指定的值。
locale

可选

默认值:en

付费墙本地化的标识符。该参数应为语言代码,由一个或两个子标签组成,以连字符(-)分隔。第一个子标签表示语言,第二个子标签表示地区。

示例:en 表示英语,pt-br 表示巴西葡萄牙语。

有关语言区域代码及推荐使用方式的更多信息,请参阅本地化与语言区域代码

loadTimeout默认值:5 秒

该值限制此方法的超时时间。若达到超时时间,将返回缓存数据或本地备用数据。

请注意,在极少数情况下,此方法的超时时间可能略迟于 loadTimeout 中指定的值,因为该操作在底层可能包含多个不同的请求。

对于 Android:您可以使用扩展函数创建 TimeInterval(例如 5.seconds,其中 .seconds 来自 import com.adapty.utils.seconds),或使用 TimeInterval.seconds(5)。如需不设限制,请使用 TimeInterval.INFINITE

请勿硬编码产品 ID。 唯一需要硬编码的 ID 是版位 ID。付费墙通过远程方式配置,因此产品数量和可用优惠随时可能发生变化。您的应用必须动态处理这些变化——如果付费墙今天返回两个产品,明天返回三个,则应全部展示,无需修改代码。

返回参数:

参数说明
Paywall一个 AdaptyPaywall 对象,包含产品 ID 列表、付费墙标识符、远程配置及其他若干属性。

获取使用付费墙编辑工具设计的付费墙的视图配置

获取付费墙后,检查其是否包含 viewConfiguration,该字段表明付费墙是使用付费墙编辑工具创建的。这将指导您如何展示该付费墙。若存在 viewConfiguration,则将其视为付费墙编辑工具付费墙;若不存在,则将其作为远程配置付费墙处理

使用 getViewConfiguration 方法加载视图配置。

if (!paywall.hasViewConfiguration) {
    // use your custom logic
    return
}

AdaptyUI.getViewConfiguration(paywall) { result ->
    when(result) {
        is AdaptyResult.Success -> {
            val viewConfiguration = result.value
            // use loaded configuration
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // handle the error
        }
    }
}