展示流程与付费墙 - Unity
如果您已创建了流程或付费墙,无需在移动应用代码中手动处理渲染逻辑来向用户展示它。此类流程或付费墙本身已包含展示内容及展示方式的完整定义。
本指南适用于由 Adapty 渲染的流程以及新版付费墙编辑工具付费墙。远程配置付费墙和 Observer 模式的处理方式有所不同。
- 如需展示远程配置付费墙,请参阅展示远程配置设计的付费墙。
- 如需在观察者模式下展示流程,请参阅在观察者模式下展示流程。
如需获取下面使用的 view 对象,请参阅获取流程与付费墙。
使用 CreateFlowView 方法创建的 view,调用 view.Present() 方法来展示流程或付费墙。每个 view 只能使用一次:已关闭的 view 会被销毁。如需再次展示流程,请重新调用 CreateFlowView 创建新的 view 实例。
不重新创建而直接复用同一个 view 可能会导致错误。
view.Present((error) => {
// handle the error
});想看看 Adapty SDK 在移动应用中的实际集成示例吗?欢迎查看我们的示例应用,其中演示了完整的集成流程,包括展示付费墙、完成购买以及其他基本功能。
显示对话框
在 Android 上展示流程或付费墙时,请使用此方法代替原生的 alert 对话框。在 Android 上,普通的 alert 会显示在流程视图的后面,导致用户无法看到。该方法可确保在所有平台上对话框都能正确显示在流程的上方。
var dialog = new AdaptyUIDialogConfiguration()
.SetTitle("Close this screen?")
.SetContent("You will lose access to exclusive offers.")
.SetDefaultActionTitle("Stay")
.SetSecondaryActionTitle("Close");
AdaptyUI.ShowDialog(view, dialog, (action, error) => {
if (error == null) {
if (action == AdaptyUIDialogActionType.Secondary) {
// User confirmed - close the flow
view.Dismiss((error) => {
// handle the error
});
}
// If primary - do nothing, user stays
}
});配置 iOS 呈现样式
通过向 Present() 方法传递 iosPresentationStyle 参数,可以配置流程或付费墙在 iOS 上的呈现方式。该参数接受 AdaptyUIIOSPresentationStyle.FullScreen(默认值)或 AdaptyUIIOSPresentationStyle.PageSheet 两个值。
view.Present(AdaptyUIIOSPresentationStyle.PageSheet, (error) => {
// handle the error
});如果您已使用付费墙编辑工具自定义了付费墙,则无需在移动应用代码中手动渲染即可将其展示给用户。此类付费墙已同时包含展示内容与展示方式。
本指南适用于新版付费墙编辑工具,需要 Adapty SDK 3.3.0 或更高版本。
如需展示使用远程配置设计的付费墙,请参阅渲染使用远程配置设计的付费墙。
要显示付费墙,请对由 CreatePaywallView 方法创建的 view 调用 view.Present() 方法。每个 view 只能使用一次。如需再次显示付费墙,请重新调用 CreatePaywallView 以创建新的 view 实例。
重复使用同一个 view 而不重新创建,可能会导致 AdaptyUIError.viewAlreadyPresented 错误。
view.Present((error) => {
// handle the error
});想看看 Adapty SDK 在移动应用中的实际集成示例吗?欢迎查看我们的示例应用,其中演示了完整的集成流程,包括展示付费墙、完成购买以及其他基本功能。
显示对话框
当付费墙视图在 Android 上展示时,请使用此方法代替原生弹窗。在 Android 上,普通弹窗会显示在付费墙视图后方,导致用户看不到。该方法可确保在所有平台上对话框正确显示于付费墙之上。
var dialog = new AdaptyUIDialogConfiguration()
.SetTitle("Close paywall?")
.SetContent("You will lose access to exclusive offers.")
.SetDefaultActionTitle("Stay")
.SetSecondaryActionTitle("Close");
AdaptyUI.ShowDialog(view, dialog, (action, error) => {
if (error == null) {
if (action == AdaptyUIDialogActionType.Secondary) {
// User confirmed - close the paywall
view.Dismiss();
}
// If primary - do nothing, user stays
}
});配置 iOS 展示样式
通过向 Present() 方法传递 iosPresentationStyle 参数,配置付费墙在 iOS 上的展示方式。该参数接受 AdaptyUIIOSPresentationStyle.FullScreen(默认值)或 AdaptyUIIOSPresentationStyle.PageSheet。
view.Present(AdaptyUIIOSPresentationStyle.PageSheet, (error) => {
// handle the error
});