Отображение пейволов, созданных в новом Paywall Builder, в iOS SDK

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

Этот гайд предназначен для пейволов, созданных в новом Paywall Builder. Процесс отображения пейволов различается в зависимости от версии Paywall Builder, Remote Config пейволов и режима Observer.

Чтобы получить объект 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опционаленВызывается при нажатии пользователем кнопки. У разных кнопок разные идентификаторы действий. Два идентификатора предопределены: 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

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

  1. Инициализируйте визуальный пейвол с помощью метода .paywallController(for:products:viewConfiguration:delegate:):

    import Adapty
    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Объект, представляющий запрошенный экран пейвола
  2. После успешного создания объекта отобразите его на экране устройства:

    present(visualPaywall, animated: true)

Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.