Thanks to visit codestin.com
Credit goes to developers.mindbox.ru

2. Инициализация 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-уведомления

const configuration = {
        domain: '<Domain API Mindbox>',
        endpointId:
          Platform.OS === 'ios'
            ? '<endpoint для iOs>'
            : '<endpoint для Android>',
        subscribeCustomerIfCreated: true,
        shouldCreateCustomer: true,
      };

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

const configuration = {
        domain: '<Domain API Mindbox>',
        endpointId:
          Platform.OS === 'ios'
            ? '<endpoint для iOs>'
            : '<endpoint для Android>',
        subscribeCustomerIfCreated: false,
        shouldCreateCustomer: true,
      };

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

const configuration = {
        domain: '<Domain API Mindbox>',
        endpointId:
          Platform.OS === 'ios'
            ? '<endpoint для iOs>'
            : '<endpoint для Android>',
        subscribeCustomerIfCreated: false,
        shouldCreateCustomer: false,
      };

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

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

Инициализировать SDK нужно синхронно в основном файле приложения App.tsx / App.js, используйте вариант конфигурации, выбранный на этапе 1.

import MindboxSdk from 'mindbox-sdk';
import React, {useCallback, useEffect, useState} from 'react';

const App = () => {
    const appInitializationCallback = useCallback(async () => {
        try {
            ВСТАВЬТЕ СЮДА ВЫБРАННУЮ НА ЭТАПЕ 1 КОНФИГУРАЦИЮ SDK
            await MindboxSdk.initialize(configuration);
        } catch (error) {
            console.log(error);
        }
    }, []);
  
    ....

    return()
}
🚧

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

Советуем вывести deviceUUID сразу за вызовом Mindbox.init.

Далее запустите приложение через Android Studio на реальном устройстве или эмуляторе:

import MindboxSdk from 'mindbox-sdk';
import React, {useCallback, useEffect, useState} from 'react';

const App = () => {
	
	...

	MindboxSdk.getDeviceUUID(console.log);

	return ();
}

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

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

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

2.2.1. Добавление AppGroups

  1. Откройте в Xcode файл {your_project}.xcworkspace.
  2. Откройте настройки проекта.
  3. Выберите основной таргет.
  4. Перейдите на вкладку Signing & Capabilities.
  5. Нажмите на кнопку «добавить» и выберите AppGroups.
  6. Добавьте новую группу с названием по шаблону 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 выбросит исключение.

👍

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

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

Если вам нужно изменить endpoint

Если ваше приложение используется в нескольких странах, а точное местоположение клиента становится известно только после запуска приложения, может потребоваться смена endpoint для корректной передачи информации о стране. Для этого нужно повторно вызвать MindboxSdk.initialize и указать в конфигурации новые endpoint