Включение покупок с Flow & Paywall Builder в Capacitor SDK
Чтобы включить встроенные покупки, нужно понять три ключевых понятия:
- Продукты – всё, что пользователи могут купить (подписки, расходуемые покупки, пожизненный доступ)
- Флоу – последовательности экранов, представляющие продукты пользователям и созданные в визуальном редакторе Flow & Paywall Builder без кода. SDK получает их через
getFlow. Если вы предпочитаете строить UI в собственном коде, используйте вместо этого пейвол — см. Реализация пейволов вручную. - Плейсменты – где и когда в приложении показываются флоу (например,
main,onboarding,settings). Вы привязываете флоу к плейсментам в дашборде, а затем запрашиваете их по ID плейсмента в коде. Это упрощает проведение A/B-тестов и показ разных флоу разным пользователям.
Adapty предлагает три способа подключить покупки в вашем приложении. Выберите подходящий в зависимости от требований вашего приложения:
| Реализация | Сложность | Когда использовать |
|---|---|---|
| Adapty Flow & Paywall Builder | ✅ Легко | Вы создаёте полноценный, готовый к покупке флоу в no-code конструкторе. Adapty автоматически рендерит его и берёт на себя весь процесс покупки, валидацию чеков и управление подписками. |
| Пейволы, созданные вручную | 🟡 Средне | Вы реализуете UI пейвола в коде своего приложения, но всё равно получаете объект флоу из Adapty, сохраняя гибкость в управлении продуктами. См. гайд. |
| Режим Observer | 🔴 Сложно | У вас уже есть собственная инфраструктура обработки покупок, и вы хотите продолжить её использовать. Обратите внимание, что режим Observer имеет ограничения в Adapty. См. статью. |
Шаги ниже показывают, как реализовать флоу, созданный в Adapty Flow & Paywall Builder.
Если вы предпочитаете создавать UI пейвола самостоятельно, см. Реализация пейволов вручную.
Чтобы отобразить флоу, созданный в Adapty Flow & Paywall Builder, в коде вашего приложения нужно только:
- Получите флоу: Загрузите его из Adapty.
- Отобразите его — покупки Adapty обработает за вас: Покажите представление в вашем приложении.
- Обработайте действия кнопок: Свяжите пользовательские взаимодействия с реакцией приложения на них. Например, открывайте ссылки или закрывайте флоу при нажатии кнопок.
Прежде чем начать
Прежде чем начать, выполните следующие шаги:
- Подключите приложение к App Store и/или Google Play в дашборде Adapty.
- Создайте продукты в Adapty.
- Создайте флоу и добавьте в него продукты.
- Создайте плейсмент и добавьте в него флоу.
- Установите и активируйте SDK в коде приложения. В этом гайде используются API Adapty Capacitor SDK v4.
1. Получите флоу
Ваши флоу привязаны к плейсментам, настроенным в дашборде. Плейсменты позволяют показывать разные флоу разным аудиториям или проводить A/B-тесты.
Чтобы получить флоу, созданный в Adapty Flow & Paywall Builder, запросите объект flow по идентификатору плейсмента с помощью метода getFlow. Флоу содержит элементы интерфейса и стили, необходимые для его отображения.
try {
const flow = await adapty.getFlow({
placementId: 'YOUR_PLACEMENT_ID',
});
// the requested flow
} catch (error) {
// handle the error
}
2. Отображение флоу
Теперь, когда у вас есть флоу, достаточно добавить несколько строк для его отображения.
Создайте view с помощью метода createFlowView, задайте обработчики событий, затем вызовите view.present(). Каждый view можно использовать только один раз. Если нужно показать флоу повторно, вызовите createFlowView ещё раз, чтобы создать новый экземпляр view.
try {
const view = await createFlowView(flow);
await view.setEventHandlers({
onPurchaseCompleted(purchaseResult, product) {
return purchaseResult.type === 'success'; // close the flow on a successful purchase, keep it open for cancelled or pending purchases
},
});
await view.present();
} catch (error) {
// handle the error
}
Подробнее о том, как отобразить флоу, читайте в нашем гайде.
3. Обработка нажатий на кнопки
Когда пользователи нажимают кнопки во флоу, Capacitor SDK автоматически обрабатывает покупки, восстановление, закрытие флоу и открытие URL.
Однако у других кнопок есть пользовательские или предопределённые идентификаторы, и их действия нужно обрабатывать в вашем коде. Также вы можете переопределить поведение по умолчанию.
Например, вот поведение кнопки закрытия по умолчанию. Добавлять его в код не нужно, но здесь видно, как это делается при необходимости.
const unsubscribe = await view.setEventHandlers({
onCloseButtonPress() {
return true; // allow the flow to close
},
});
Читайте наши гайды о том, как обрабатывать действия кнопок и события.
Следующие шаги
Есть вопросы или возникли проблемы? Загляните на наш форум поддержки, где можно найти ответы на распространённые вопросы или задать свой. Наша команда и сообщество всегда готовы помочь!
Ваш пейвол готов к отображению в приложении. Протестируйте покупки в песочнице App Store или в Google Play Store, чтобы убедиться, что тестовая покупка из пейвола проходит успешно.
Теперь нужно проверить уровень доступа пользователей, чтобы показывать пейвол или предоставлять доступ к платным функциям нужным пользователям.
Полный пример
Вот как все шаги из этого гайда можно объединить в вашем приложении.
export async function showFlow() {
try {
const flow = await adapty.getFlow({
placementId: 'YOUR_PLACEMENT_ID',
});
const view = await createFlowView(flow);
await view.setEventHandlers({
onCloseButtonPress() {
return true;
},
onPurchaseCompleted(purchaseResult, product) {
return purchaseResult.type === 'success'; // close the flow on a successful purchase, keep it open for cancelled or pending purchases
},
});
await view.present();
} catch (error) {
// handle any error that may occur during the process
console.warn('Error showing flow:', error);
}
}