Чтобы получать Firebase Dynamic Links, которые вы создали, необходимо добавить в приложение SDK Dynamic Links и создать объект firebase::dynamic_links::Listener, который реализует виртуальную функцию OnDynamicLinkReceived.
C++ SDK работает как на Android, так и на iOS, но для каждой платформы требуется дополнительная настройка.
Подготовка
Чтобы использовать Firebase Dynamic Links, необходимо:
Зарегистрируйте проект C++ и настройте его для использования Firebase.
Если в проекте уже используется Firebase, можете пропустить этот шаг.
Добавьте Firebase C++ SDK в проект C++.
Обратите внимание, что для добавления Firebase в проект C++ нужно выполнить действия как в консоли Firebase, так и в вашем открытом проекте C++. Например, вам потребуется скачать файлы конфигурации Firebase из консоли, а затем переместить их в проект C++.
Добавьте специальные схемы URL (только для iOS)
Клиентская библиотека Firebase Dynamic Links C++ использует специальные схемы URL в iOS для обработки ссылок. Чтобы приложение могло получать Dynamic Links, в него нужно добавить специальные схемы URL.
Чтобы открыть конфигурацию проекта, дважды нажмите на его название в дереве аккаунта слева.
Выберите приложение в разделе TARGETS (Цели), откройте вкладку Info (Информация) и разверните раздел URL Types (Типы URL).
Нажмите кнопку + и добавьте схему URL для обратного идентификатора клиента. Чтобы найти это значение, выполните следующие действия:
Откройте файл конфигурации
и найдите ключGoogleService-Info.plist REVERSED_CLIENT_ID.Скопируйте значение этого ключа и вставьте его в поле URL Schemes (Схемы URL) на странице конфигурации.
Другие поля оставьте пустыми.
Нажмите кнопку + и добавьте вторую схему URL. Он совпадает с идентификатором пакета приложения.
Например, если идентификатор пакета –
com.example.ios, введите это значение в поле URL Schemes (Схемы URL).Идентификатор пакета приложения можно найти на вкладке General (Общие) в настройках проекта (Identity (Идентификатор) > Bundle Identifier (Идентификатор пакета)).
Получение Dynamic Link
Создание и инициализация приложения
Прежде чем проверять полученные Dynamic Links, необходимо создать и инициализировать объект firebase::App.
Добавьте заголовочный файл для firebase::App:
#include "firebase/app.h"
Дальнейшие действия зависят от платформы:
Android
Создайте объект firebase::App, передав указатель на среду JNI и ссылку jobject на объект activity в Java в виде аргументов:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
iOS
Создайте firebase::App:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
Реализуйте прослушиватель для проверки Dynamic Links
Чтобы проверить, получен ли объект Dynamic Link, реализуйте и используйте класс firebase::dynamic_links::Listener.
Добавьте заголовочный файл для получения Dynamic Links:
#include "firebase/dynamic_links.h"
Инициализируйте библиотеку Dynamic Links:
::firebase::dynamic_links::Initialize(app, null);
Создайте объект, который реализует firebase::dynamic_links::Listener, и передайте его в библиотеку Dynamic Links с помощью SetListener() или в качестве второго аргумента в Initialize.
Чтобы получать Dynamic Links, ваш класс Listener должен реализовывать виртуальную функцию OnDynamicLinkReceived. Переопределив метод, вы сможете получать ссылку на контент, если она была получена.
class Listener : public firebase::dynamic_links::Listener { public: // Called on the client when a dynamic link arrives. void OnDynamicLinkReceived( const firebase::dynamic_links::DynamicLink* dynamic_link) override { printf("Received link: %s", dynamic_link->url.c_str()); } };