Kotlin Multiplatform - 展示新版付费墙编辑工具付费墙
如果您已使用付费墙编辑工具自定义了付费墙,则无需在移动应用代码中手动处理其渲染逻辑来向用户展示它。此类付费墙已包含应在付费墙中显示的内容以及显示方式。
本指南仅适用于新版付费墙编辑工具付费墙。付费墙的展示流程因远程配置付费墙和 Observer 模式 而有所不同。
如需展示远程配置付费墙,请参阅渲染由远程配置设计的付费墙。
Adapty Kotlin Multiplatform SDK 提供两种展示付费墙的方式:
- 使用 Compose Multiplatform
- 不使用 Compose Multiplatform
使用 Compose Multiplatform
要显示付费墙,请对由 createPaywallView 方法创建的 view 调用 view.present() 方法。每个 view 只能使用一次。如果需要再次显示付费墙,请再次调用 createPaywallView 以创建新的 view 实例。
重复使用同一个 view 而不重新创建,可能会导致错误。
import com.adapty.kmp.AdaptyUI
import com.adapty.kmp.models.AdaptyPaywall
import kotlinx.coroutines.launch
viewModelScope.launch {
AdaptyUI.createPaywallView(paywall = paywall).onSuccess { view ->
view.present()
}.onError { error ->
// handle the error
}
}
显示对话框
在 Android 上展示付费墙视图时,请使用此方法代替原生 alert 对话框。在 Android 上,普通 alert 会显示在付费墙视图的后面,导致用户无法看到。此方法可确保对话框在所有平台上正确地显示在付费墙上方。
import com.adapty.kmp.models.AdaptyUIDialogActionType
import kotlinx.coroutines.launch
viewModelScope.launch {
view.showDialog(
title = "Close paywall?",
content = "You will lose access to exclusive offers.",
primaryActionTitle = "Stay",
secondaryActionTitle = "Close"
).onSuccess { action ->
if (action == AdaptyUIDialogActionType.SECONDARY) {
// 用户确认 - 关闭付费墙
view.dismiss()
}
// 如果选择主要操作 - 不做任何事,用户留下
}.onError { error ->
// 处理错误
}
}
配置 iOS 呈现样式
通过向 present() 方法传递 iosPresentationStyle 参数,配置付费墙在 iOS 上的呈现方式。该参数接受 AdaptyUIIOSPresentationStyle.FULLSCREEN(默认值)或 AdaptyUIIOSPresentationStyle.PAGESHEET 值。
import com.adapty.kmp.AdaptyUI
import com.adapty.kmp.models.AdaptyUIIOSPresentationStyle
import kotlinx.coroutines.launch
viewModelScope.launch {
val view = AdaptyUI.createPaywallView(paywall = paywall).getOrNull()
view?.present(iosPresentationStyle = AdaptyUIIOSPresentationStyle.PAGESHEET)
}
不使用 Compose Multiplatform
createNativePaywallView 是核心模块 io.adapty:adapty-kmp 的一部分。如果您的项目不使用 Compose Multiplatform,则无需添加 io.adapty:adapty-kmp-ui 依赖。
如需在不使用 Compose Multiplatform 的情况下嵌入付费墙,请调用 createNativePaywallView。该方法会返回一个 AdaptyNativePaywallView,您可将其添加到布局中:
销毁视图
在从布局中移除视图时,请调用 dispose()。这将注销事件监听器并释放内部资源。
nativeView.dispose()
自定义标签
自定义标签让你无需为不同场景创建单独的付费墙。想象一个能根据用户数据动态适配的付费墙。例如,你可以用”你好,John!“或”你好,Ann!“来个性化问候用户,而不是千篇一律的”你好!”
以下是一些自定义标签的使用场景:
- 在付费墙上显示用户的姓名或电子邮件。
- 显示当前星期几来促进销售(例如,“周四快乐”)。
- 添加关于所售产品的个性化详情(例如健身计划的名称,或 VoIP 应用中的电话号码)。 自定义标签可帮助您创建灵活的付费墙,使其适应各种情况,让您的应用界面更加个性化和吸引人。
在某些情况下,您的应用可能不知道该用什么来替换自定义标签——尤其是当用户使用较旧版本的 AdaptyUI SDK 时。为防止这种情况,请务必添加备用文本,以替换包含未知自定义标签的内容行。否则,用户可能会看到标签以代码形式显示(<USERNAME/>)。
要在付费墙中使用自定义标签,请在创建付费墙视图时传入这些标签:
自定义计时器
付费墙计时器是推广限时特惠和季节性活动的绝佳工具。但需要注意的是,该计时器与优惠的有效期或活动持续时间无关。它只是一个独立的倒计时器,从您设定的值开始递减至零。当计时器归零后,不会触发任何操作——它只会停留在零。
您可以自定义计时器前后的文字,以呈现所需的提示信息,例如:“优惠结束倒计时:10:00 秒。”
要在付费墙中使用自定义计时器,请在创建付费墙视图时将其传入: