Показ онбординга в iOS SDK

Начиная с SDK v4 (бета), вы можете создавать флоу как более мощную альтернативу онбордингам. В отличие от онбордингов, которые работают внутри WebView, флоу рендерятся нативно на устройстве — это обеспечивает плавные анимации, единый iOS-стиль, быструю загрузку и отсутствие зависимости от WebView. Смотрите Получение флоу и пейволов и Отображение флоу и пейволов, чтобы начать.

Если вы создали онбординг с помощью конструктора, вам не нужно беспокоиться о его рендеринге в коде мобильного приложения для отображения пользователю. Такой онбординг содержит и то, что должно показываться, и то, как это должно показываться.

Перед началом убедитесь, что:

  1. Вы установили Adapty iOS SDK версии 3.8.0 или выше.
  2. Вы создали онбординг.
  3. Вы добавили онбординг в плейсмент.

Показ онбордингов в Swift

Чтобы отобразить визуальный онбординг на экране устройства, выполните следующие шаги:

  1. Получите конфигурацию онбординга с помощью метода .getOnboardingConfiguration.

  2. Инициализируйте визуальный онбординг с помощью метода .onboardingController:

    Параметры запроса: | Параметр | Наличие | Описание | |:-----------------------------|:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | onboarding configuration | required | Объект AdaptyUI.OnboardingConfiguration, содержащий все свойства онбординга. Используйте метод AdaptyUI.getOnboardingConfiguration для его получения. | | delegate | required | Объект AdaptyOnboardingControllerDelegate для прослушивания событий онбординга. | Возвращает:

    ОбъектОписание
    AdaptyOnboardingControllerОбъект, представляющий запрошенный экран онбординга
  3. После успешного создания объекта его можно отобразить на экране устройства:

    import Adapty
    import AdaptyUI
    
    // 0. Get an onboarding if you haven't done it yet     
    let onboarding = try await Adapty.getOnboarding(placementId: "YOUR_PLACEMENT_ID")
    
    // 1. Obtain the onboarding view configuration:
    let configuration = try AdaptyUI.getOnboardingConfiguration(forOnboarding: onboarding)
    
    // 2. Create Onboarding View Controller
    let onboardingController = try AdaptyUI.onboardingController(
        with: configuration,
        delegate: <AdaptyOnboardingControllerDelegate>
    ) 
    
    // 3. Present it to the user
    present(onboardingController, animated: true)

Показ онбординга в SwiftUI

Чтобы отобразить визуальный онбординг на экране устройства в SwiftUI:

// 1. Obtain the onboarding view configuration:
let configuration = try AdaptyUI.getOnboardingConfiguration(forOnboarding: onboarding)

// 2. Display the Onboarding View within your view hierarchy
AdaptyOnboardingView(
    configuration: configuration,
    placeholder: { Text("Your Placeholder View") },
    onCloseAction: { action in
        // hide the onboarding view
    },
    onError: { error in
         // handle the error
    }
)

Добавление плавных переходов между сплэш-экраном и онбордингом

По умолчанию между сплэш-экраном и онбордингом отображается экран загрузки, пока онбординг полностью не загрузится. Если вы хотите сделать переход более плавным, можно его настроить: либо продлить отображение сплэш-экрана, либо показать что-то другое.

Для этого задайте placeholder (то, что будет отображаться во время загрузки онбординга). Если placeholder задан, онбординг будет загружаться в фоне и автоматически отобразится, как только будет готов.

Настройка открытия ссылок в онбордингах поддерживается начиная с Adapty SDK v3.15.1.

По умолчанию ссылки в онбордингах открываются во встроенном браузере. Это обеспечивает бесшовный пользовательский опыт: веб-страницы отображаются прямо внутри приложения, не вынуждая пользователя переключаться между приложениями.

Если вы хотите открывать ссылки во внешнем браузере, измените это поведение, установив параметр externalUrlsPresentation в значение .externalBrowser:


let configuration = try AdaptyUI.getOnboardingConfiguration(
    forOnboarding: onboarding,
    externalUrlsPresentation: .externalBrowser // default – .inAppBrowser
)