Mindbox
Flutter SDK

Методы Flutter SDK

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

Mindbox.instance.init

Создайте конфигурацию и инициализируйте SDK:

DartCode
final config = Configuration( domain: "домен API Mindbox", endpointIos: "endpoint для iOS", endpointAndroid: "endpoint для Android", subscribeCustomerIfCreated: true, ); Mindbox.instance.init(configuration: config);

Domain API Mindbox

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

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


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


Получение данных от SDK

getDeviceUUID

Метод получения UUID устройства после присвоения. Может вызываться в любое время, но вернет строку в колбек только после инициализации.

DartCode
Mindbox.instance.getDeviceUUID((uuid) { print(uuid); });

getToken

Метод получения token(APNS/FMS) после присвоения. Может вызываться в любое время, но вернет строку в коллбек только после инициализации.

DartCode
Mindbox.instance.getToken((token) { print(token); });

sdkVersion

Свойство, в котором хранится текущая версия SDK.

DartCode
Mindbox.instance.nativeSdkVersion

Обработка кликов по уведомлениям

onPushClickReceived

Метод для подписки на событие кликов по уведомлениям. Переданный коллбек вызывается в момент, когда пользователь нажимает на уведомление и запускается приложение.

В качестве аргументов передаются ссылка и payload, которые были в нажатом пуше. Если нажатие было по кнопке, то возвращается ссылка из кнопки, если по телу — то ссылка с тела.

DartCode
Mindbox.instance.onPushClickReceived((link, payload) { switch (link) { case 'mindbox.cloud': Navigator.push(context, MaterialPageRoute(builder: (_) => ContentPage())); break; case 'mindbox.cloud/user': Navigator.push(context, MaterialPageRoute(builder: (_) => ProfilePage())); break; default: Navigator.push(context, MaterialPageRoute(builder: (_) => HomePage())); } });

Передача данных (выполнение операций)

Передача событий в Mindbox происходит через выполнение операций, заведенных в административном разделе. Операции можно выполнять в 2 режимах:

  • асинхронно — API Mindbox отвечает 200 сразу, как получил данные. Обработка данных происходит в фоновом режиме.
  • синхронно — API Mindbox начинает обрабатывать запрос в момент получения и отвечает актуальным статусом обработки.

Подробное описание передачи событий через iOS SDK

executeAsyncOperation

Метод выполнения операции в асинхронном режиме.

DartCode
Mindbox.instance.executeAsyncOperation( operationSystemName: '<системное имя операции>', operationBody: { <Map<String, dynamic> с данными> }, );

executeSyncOperation

Метод для выполнения операции в синхронном режиме. Данные возвращаются в переданные коллбеки.

DartCode
Mindbox.instance.executeSyncOperation( operationSystemName: '<системное имя операции>', operationBody: { <Map<String, dynamic> с данными> }, onSuccess: (data) { // обработка успешного ответа }, onError: (error) { // обработка ошибки }, );

Управление логированием

Для управления тем, что будет писать в консоль Mindbox SDK, есть специальный метод установки уровня логирования: setLoglevel.

Логи пишутся только в debug сборке. В продакшн режиме Mindbox SDK ничего не пишет в консоль.

DartCode
Mindbox.instance.setLogLevel(logLevel: LogLevel.debug);

Варианты значения:

  • LogLevel.verbose
  • LogLevel.debug
  • LogLevel.info
  • LogLevel.warn
  • LogLevel.error
  • LogLevel.none

registerInAppCallbacks

Метод используется для реализации своей обработки клика и закрытия In-App
Подробнее можно прочитать в разделе In-App

DartCode
Mindbox.instance.registerInAppCallbacks(inAppCallbacks: [ CustomInAppCallback( clickHandler: (id, redirectUrl, payload) { print(id); print(redirectUrl); print(payload); }, dismissedHandler: (id) { print(id); }, ), ]);

refreshNotificationPermissionStatus (since 2.14.3)

Метод используется для обновления статуса разрешения на получение уведомлений

Code
Mindbox.instance.refreshNotificationPermissionStatus()
Last modified on