展示流程与付费墙 - Unity
如果你已经创建了流程或使用旧版付费墙编辑工具创建了付费墙,则无需在移动应用代码中手动处理其渲染逻辑来向用户展示。这类流程或付费墙本身已包含展示内容及展示方式的完整定义。
本指南介绍由 Adapty 渲染的流程和付费墙。自定义付费墙和 Observer 模式 的处理方式有所不同。
- 要展示自定义付费墙,请参阅展示自定义付费墙。
- 要在 Observer mode 下展示流程,请参阅在 Observer mode 下展示流程。
如需获取下方使用的 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
});