Mindbox
Flutter SDK

Инициализация SDK

Убедитесь, что эти шаги выполнены успешно:

Результат шага «Инициализация SDK»:

  • Приложение запустилось без ошибок на обеих платформах (iOS и Android);
  • В консоли разработчика в Xcode выведен deviceUUID SDK Mindbox;
  • Дополнительно, только если вы делаете интеграцию с созданием и подпиской анонимного пользователя в системе Mindbox — создастся клиент Mindbox.

1. Выбор варианта конфигурации SDK

Выберите вариант конфигурации SDK на основе требований от маркетинга.

Необходимо получить «<эндпоинт проекта>» от вашего менеджера проекта Mindbox, либо посмотреть его в настройках точки интеграции. Обратите внимание, что ендпоинт проекта чувствителен к регистру, то есть имеет значение, используются ли заглавные или строчные буквы.

Domain API Mindbox

Это домен, по которому будет происходить обращение в API Mindbox.

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


1. Перейдите на сайт проекта
2. Перейдите в список операций через "Кампании" → "Список кампаний" → "Операции"
3. Откройте любую операцию
4. Нажмите «Посмотреть описание»
5. Скопируйте домен из URL в спецификации


1. Хочу передавать в Mindbox анонимных пользователей и отправлять им push-уведомления

DartCode
final config = Configuration( domain: '<Domain API Mindbox>', endpointIos: '<endpoint для iOs>', endpointAndroid: '<endpoint для Android>', shouldCreateCustomer: true, subscribeCustomerIfCreated: true );

2. Хочу передавать в mindbox анонимных пользователей без возможности отправлять им push-уведомления

DartCode
final config = Configuration( domain: '<Domain API Mindbox>', endpointIos: '<endpoint для iOs>', endpointAndroid: '<endpoint для Android>', shouldCreateCustomer: true, subscribeCustomerIfCreated: false );

3. Не хочу передавать в mindbox анонимных пользователей

DartCode
final config = Configuration( domain: '<Domain API Mindbox>', endpointIos: '<endpoint для iOs>', endpointAndroid: '<endpoint для Android>', shouldCreateCustomer: false );

Дополнительное поле shouldIncludeVersionCode (Since 2.15.4)

Отвечает за то, включать ли номер сборки Android-приложения (versionCode) в версию приложения, которую SDK передает в Mindbox. По умолчанию: true.

Работает только на Android — на iOS параметр игнорируется: iOS SDK не передает номер сборки.

  • true — версия приложения передается в формате versionName(versionCode), например 4.5.0(1024);
  • false — передается только versionName, например 4.5.0.

Укажите false, чтобы в версии приложения, которая передается в Mindbox, не отображался versionCode. Это полезно, если versionCode увеличивается при каждой сборке — тогда одна и та же версия приложения создает несколько значений версии в фильтрах административного раздела Mindbox.

DartCode
final config = Configuration( domain: '<Domain API Mindbox>', endpointIos: '<endpoint для iOs>', endpointAndroid: '<endpoint для Android>', shouldCreateCustomer: true, subscribeCustomerIfCreated: true, shouldIncludeVersionCode: false );

2. Инициализация SDK

2.1. Настройка Flutter-части проекта

Инициализировать SDK нужно синхронно в файле lib/main.dart в функции main.

Используйте вариант конфигурации, выбранный на этапе 1.

Dartmain.dart
import 'package:flutter/material.dart'; import 'package:mindbox/mindbox.dart'; void main() { // ВСТАВЬТЕ СЮДА ВЫБРАННУЮ НА ЭТАПЕ 1 КОНФИГУРАЦИЮ SDK Mindbox.instance.init(configuration: config); runApp(const MyApp()); }

Чтобы проверить корректность инициализации, добавьте вывод deviceUUID в консоль в любом удобном месте.

На этом этапе вы уже можете запустить приложение на Android


2.2. Настройка iOS-части проекта

Для интеграции Mindbox SDK во Flutter-проект необходимо подключить нативный Mindbox iOS SDK и выполнить соответствующие настройки проекта.

  1. Откройте настройки проекта.
  2. Выберите основной таргет.
  3. Перейдите на вкладку Signing & Capabilities.
  4. Нажмите на кнопку «добавить» и выберите AppGroups.
  5. Добавьте новую группу с названием по шаблону group.cloud.Mindbox.{bundle id приложения}
    Например, bundle id приложения - Mindbox-Sample-App, тогда значение App Group должно быть group.cloud.Mindbox.Mindbox-Sample-App.

AppGroup должна быть собрана по шаблону: 

group.cloud.Mindbox.{bundle id приложения}

Если допустить ошибку в шаблоне AppGroup в Main Target — приложение не соберется.

Фактическое значение лучше проверять через файл с расширением .entitlements.

SDK валидирует, что группа названа по шаблону. Если нарушить шаблон, SDK выбросит исключение.


Запустите приложение на iOS и проверьте результаты выполнения этапа.

Проверьте результат шага «Инициализация SDK»:

  • Приложение запустилось без ошибок на обеих платформах (iOS и Android);
  • В консоли разработчика в Xсode выведен deviceUUID SDK Mindbox;
  • Дополнительно, только если вы делаете интеграцию с созданием и подпиской анонимного пользователя в системе Mindbox — создастся клиент Mindbox.

Изменение endpoint

Если приложение используется в нескольких странах и фактическое местоположение пользователя определяется только после запуска, может потребоваться динамическая смена endpoint для корректной передачи данных о стране. Для обновления настроек повторно вызовите Mindbox.instance.init и передайте в конфигурации актуальные значения endpointAndroid и endpointIos.


Last modified on