在 iOS SDK 中展示用户引导

如果您已使用编辑工具自定义了用户引导,则无需在移动应用代码中手动处理其渲染逻辑。这类用户引导已包含展示内容及展示方式的完整配置。

开始之前,请确保:

  1. 已安装 Adapty iOS SDK 3.8.0 或更高版本。
  2. 创建用户引导
  3. 已将用户引导添加到版位

在 Swift 中展示用户引导

要在设备屏幕上显示可视化用户引导,请执行以下步骤:

  1. 使用 .getOnboardingConfiguration 方法获取用户引导视图配置。

  2. 使用 .onboardingController 方法初始化您想要显示的可视化用户引导:

    请求参数:

    参数是否必填描述
    onboarding configuration必填包含所有用户引导属性的 AdaptyUI.OnboardingConfiguration 对象。使用 AdaptyUI.getOnboardingConfiguration 方法获取。
    delegate必填用于监听用户引导事件的 AdaptyOnboardingControllerDelegate

    返回值:

    对象描述
    AdaptyOnboardingController表示所请求用户引导页面的对象
  3. 对象成功创建后,您可以将其显示在设备屏幕上:

    import Adapty
    import AdaptyUI
    
    // 0. 如果尚未获取用户引导,请先获取
    let onboarding = try await Adapty.getOnboarding(placementId: "YOUR_PLACEMENT_ID")
    
    // 1. 获取用户引导视图配置:
    let configuration = try AdaptyUI.getOnboardingConfiguration(forOnboarding: onboarding)
    
    // 2. 创建用户引导视图控制器
    let onboardingController = try AdaptyUI.onboardingController(
        with: configuration,
        delegate: <AdaptyOnboardingControllerDelegate>
    ) 
    
    // 3. 将其展示给用户
    present(onboardingController, animated: true)

在 SwiftUI 中展示用户引导

要在 SwiftUI 中在设备屏幕上显示可视化用户引导:

// 1. 获取用户引导视图配置:
let configuration = try AdaptyUI.getOnboardingConfiguration(forOnboarding: onboarding)

// 2. 在视图层级中显示用户引导视图
AdaptyOnboardingView(
    configuration: configuration,
    placeholder: { Text("Your Placeholder View") },
    onCloseAction: { action in
        // 隐藏用户引导视图
    },
    onError: { error in
         // 处理错误
    }
)

在启动页与用户引导之间添加平滑过渡

默认情况下,在启动页和用户引导之间,您会看到加载页面,直到用户引导完全加载完成。但如果您希望使过渡更加流畅,可以对其进行自定义——延长启动页显示时间或显示其他内容。

为此,请定义一个占位视图(即用户引导加载期间显示的内容)。如果您定义了占位视图,用户引导将在后台加载,并在准备就绪后自动显示。

自定义用户引导中链接的打开方式从 Adapty SDK v.3.15.1 开始支持。

默认情况下,用户引导中的链接会在应用内浏览器中打开。这通过在应用内显示网页,为用户提供无缝体验,无需切换应用即可浏览。

如果您希望在外部浏览器中打开链接,可以通过将 externalUrlsPresentation 参数设置为 .externalBrowser 来自定义此行为:

import Adapty
import AdaptyUI

let configuration = try AdaptyUI.getOnboardingConfiguration(
    forOnboarding: onboarding,
    externalUrlsPresentation: .externalBrowser // 默认值为 .inAppBrowser
)