Отображение флоу и пейволов — iOS
Если вы создали флоу или пейвол, вам не нужно беспокоиться об их отрисовке в коде мобильного приложения — всё, что должно быть показано и как именно, уже содержится внутри самого флоу или пейвола.
Чтобы получить объект AdaptyUI.FlowConfiguration, используемый ниже, см. Получение флоу и пейволов.
Отображение флоу и пейволов в SwiftUI
Отображение как модальное окно
Чтобы показать флоу или пейвол на экране устройства как модальное окно, используйте модификатор .flow в SwiftUI. Минимальный вызов требует isPresented, flowConfiguration и четыре обязательных коллбэка:
.flow(
isPresented: $flowPresented,
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didFailPurchase: { _, _ in /* handle the error */ },
didFinishRestore: { _ in /* check access level and dismiss */ },
didFailRestore: { _ in /* handle the error */ },
didReceiveError: { _ in flowPresented = false }
)Для большего контроля добавьте необязательные коллбэки: didPerformAction для обработки нажатий на кнопки и didFinishPurchase для реакции на успешные покупки:
@State var flowPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the flow or paywall
var body: some View {
Text("Hello, AdaptyUI!")
.flow(
isPresented: $flowPresented,
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didPerformAction: { action in
switch action {
case .close:
flowPresented = false
default:
// Handle other actions
break
}
},
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didReceiveError: { error in flowPresented = false }
)
}Параметры:
| Параметр | Обязательный | Описание |
|---|---|---|
| isPresented | обязательный | Привязка, управляющая отображением экрана флоу или пейвола. |
| flowConfiguration | обязательный | Объект AdaptyUI.FlowConfiguration, содержащий визуальные детали флоу или пейвола. Используйте метод AdaptyUI.getFlowConfiguration(forFlow:). Подробнее см. в разделе Получение флоу и пейволов. |
| didFailPurchase | обязательный | Вызывается при ошибке Adapty.makePurchase(). |
| didFinishRestore | обязательный | Вызывается при успешном завершении Adapty.restorePurchases(). |
| didFailRestore | обязательный | Вызывается при ошибке Adapty.restorePurchases(). |
| didReceiveError | обязательный | Вызывается при ошибке рендеринга или ошибке выполнения скрипта флоу (например, JavaScript-исключение, код AdaptyUIError 4105). При ошибках рендеринга обратитесь в поддержку Adapty. |
| fullScreen | необязательный | Определяет, отображается ли флоу или пейвол в полноэкранном режиме или как шторка. По умолчанию true. |
| didAppear | необязательный | Вызывается, когда экран флоу или пейвола был показан. |
| didDisappear | необязательный | Вызывается, когда экран флоу или пейвола был закрыт. |
| didPerformAction | необязательный | Вызывается при нажатии пользователем на кнопку. Два ID действий предопределены: close и openURL; остальные — пользовательские и задаются в конструкторе. |
| didSelectProduct | необязательный | Вызывается, когда продукт выбран для покупки пользователем или системой. |
| didStartPurchase | необязательный | Вызывается, когда пользователь начинает процесс покупки. |
| didFinishPurchase | необязательный | Вызывается при успешном завершении Adapty.makePurchase(). |
| didFinishWebPaymentNavigation | необязательный | Вызывается по завершении навигации веб-оплаты. |
| didStartRestore | необязательный | Вызывается, когда пользователь начинает процесс восстановления покупок. |
| didFailLoadingProducts | необязательный | Вызывается при ошибках загрузки продуктов. Верните true, чтобы повторить попытку. |
| didPartiallyLoadProducts | необязательный | Вызывается при частичной загрузке продуктов. |
| showAlertItem | необязательный | Привязка, управляющая отображением элементов предупреждения поверх флоу или пейвола. |
| showAlertBuilder | необязательный | Функция для отрисовки представления предупреждения. |
| placeholderBuilder | необязательный | Функция для отрисовки заглушки во время загрузки флоу или пейвола. По умолчанию используется ProgressView. |
Подробнее о параметрах см. в разделе iOS — Обработка событий.
Отображение как немодальное представление
Флоу и пейволы также можно отображать как точки назначения навигации или встроенные представления внутри навигационного флоу приложения. Используйте AdaptyFlowView напрямую в ваших SwiftUI-представлениях:
AdaptyFlowView(
flowConfiguration: <AdaptyUI.FlowConfiguration>,
didFailPurchase: { product, error in
// Handle purchase failure
},
didFinishRestore: { profile in
// Handle successful restore
},
didFailRestore: { error in
// Handle restore failure
},
didReceiveError: { error in
// Handle the error (rendering or JS exception from the flow script).
}
)Отображение флоу и пейволов в UIKit
Чтобы показать флоу или пейвол на экране устройства, выполните следующие шаги:
-
Инициализируйте визуальный флоу, который хотите отобразить, с помощью метода
AdaptyUI.flowController(with:delegate:):import AdaptyUI let visualFlow = try AdaptyUI.flowController( with: <AdaptyUI.FlowConfiguration>, delegate: <AdaptyFlowControllerDelegate> )Параметры запроса:
Параметр Наличие Описание flowConfiguration обязательный Объект AdaptyUI.FlowConfiguration, содержащий визуальные детали флоу или пейвола. Используйте методAdaptyUI.getFlowConfiguration(forFlow:). Подробнее см. в разделе Получение флоу и пейволов.delegate обязательный AdaptyFlowControllerDelegateдля прослушивания событий флоу и пейвола. Подробнее см. в разделе Обработка событий флоу и пейвола.Возвращает:
Объект Описание AdaptyFlowController Объект, представляющий запрошенный экран флоу или пейвола. -
После успешного создания объекта его можно отобразить на экране устройства:
present(visualFlow, animated: true)
Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Ознакомьтесь с нашими примерами приложений, которые демонстрируют полную настройку, включая отображение пейволов, совершение покупок и другой базовый функционал.
Если вы настроили пейвол с помощью Paywall Builder, вам не нужно беспокоиться об его отрисовке в коде мобильного приложения — всё, что должно быть показано и как именно, уже содержится внутри самого пейвола.
Чтобы получить объект AdaptyUI.PaywallConfiguration, используемый ниже, см. Получение пейволов Paywall Builder и их конфигурации.
Отображение пейволов в SwiftUI
Отображение как модальное окно
Чтобы показать визуальный пейвол на экране устройства как модальное окно, используйте модификатор .paywall в SwiftUI:
@State var paywallPresented = false // ensure that you manage this variable state and set it to `true` at the moment you want to show the paywall
var body: some View {
Text("Hello, AdaptyUI!")
.paywall(
isPresented: $paywallPresented,
paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
didPerformAction: { action in
switch action {
case .close:
paywallPresented = false
default:
// Handle other actions
break
}
},
didFinishPurchase: { product, profile in paywallPresented = false },
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in paywallPresented = false }
)
}Параметры:
| Параметр | Обязательный | Описание |
|---|---|---|
| isPresented | обязательный | Привязка, управляющая отображением экрана пейвола. |
| paywallConfiguration | обязательный | Объект AdaptyUI.PaywallConfiguration, содержащий визуальные детали пейвола. Используйте метод AdaptyUI.paywallConfiguration(for:products:viewConfiguration:observerModeResolver:tagResolver:timerResolver:). Подробнее см. в разделе Получение пейволов Paywall Builder и их конфигурации. |
| didFailPurchase | обязательный | Вызывается при ошибке Adapty.makePurchase(). |
| didFinishRestore | обязательный | Вызывается при успешном завершении Adapty.restorePurchases(). |
| didFailRestore | обязательный | Вызывается при ошибке Adapty.restorePurchases(). |
| didFailRendering | обязательный | Вызывается при ошибке отрисовки интерфейса. В этом случае обратитесь в поддержку Adapty. |
| fullScreen | необязательный | Определяет, отображается ли пейвол в полноэкранном режиме или как модальное окно. По умолчанию true. |
| didAppear | необязательный | Вызывается, когда экран пейвола был показан. |
| didDisappear | необязательный | Вызывается, когда экран пейвола был закрыт. |
| didPerformAction | необязательный | Вызывается при нажатии пользователем на кнопку. Разные кнопки имеют разные ID действий. Два ID предопределены: close и openURL; остальные — пользовательские и задаются в конструкторе. |
| didSelectProduct | необязательный | Вызывается, когда продукт выбран для покупки пользователем или системой. |
| didStartPurchase | необязательный | Вызывается, когда пользователь начинает процесс покупки. |
| didFinishPurchase | необязательный | Вызывается при успешном завершении Adapty.makePurchase(). |
| didFinishWebPaymentNavigation | необязательный | Вызывается по завершении навигации веб-оплаты. |
| didStartRestore | необязательный | Вызывается, когда пользователь начинает процесс восстановления покупок. |
| didFailLoadingProducts | необязательный | Вызывается при ошибках загрузки продуктов. Верните true, чтобы повторить попытку. |
| didPartiallyLoadProducts | необязательный | Вызывается при частичной загрузке продуктов. |
| showAlertItem | необязательный | Привязка, управляющая отображением элементов предупреждения поверх пейвола. |
| showAlertBuilder | необязательный | Функция для отрисовки представления предупреждения. |
| placeholderBuilder | необязательный | Функция для отрисовки заглушки во время загрузки пейвола. |
Подробнее о параметрах см. в разделе iOS — Обработка событий.
Отображение как немодальное представление
Пейволы также можно отображать как точки назначения навигации или встроенные представления внутри навигационного флоу приложения. Используйте AdaptyPaywallView напрямую в ваших SwiftUI-представлениях:
AdaptyPaywallView(
paywallConfiguration: <AdaptyUI.PaywallConfiguration>,
didFailPurchase: { product, error in
// Handle purchase failure
},
didFinishRestore: { profile in
// Handle successful restore
},
didFailRestore: { error in
// Handle restore failure
},
didFailRendering: { error in
// Handle rendering error
}
)Отображение пейволов в UIKit
Чтобы показать визуальный пейвол на экране устройства, выполните следующие шаги:
-
Инициализируйте визуальный пейвол, который хотите отобразить, с помощью метода
.paywallController(for:products:viewConfiguration:delegate:):import AdaptyUI let visualPaywall = AdaptyUI.paywallController( with: <paywall configuration object>, delegate: <AdaptyPaywallControllerDelegate> )Параметры запроса:
Параметр Наличие Описание paywall configuration обязательный Объект AdaptyUI.PaywallConfiguration, содержащий визуальные детали пейвола. Используйте методAdaptyUI.getPaywallConfiguration(forPaywall:locale:). Подробнее см. в разделе Получение пейволов Paywall Builder и их конфигурации.delegate обязательный AdaptyPaywallControllerDelegateдля прослушивания событий пейвола. Подробнее см. в разделе Обработка событий пейвола.Возвращает:
Объект Описание AdaptyPaywallController Объект, представляющий запрошенный экран пейвола. -
После успешного создания объекта его можно отобразить на экране устройства:
present(visualPaywall, animated: true)
Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Ознакомьтесь с нашими примерами приложений, которые демонстрируют полную настройку, включая отображение пейволов, совершение покупок и другой базовый функционал.