Чтобы получать 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.
Чтобы открыть конфигурацию проекта, дважды нажмите на его название в древовидном представлении слева.
Выберите приложение в разделе ЦЕЛИ, откройте вкладку Информация и разверните раздел Типы URL.
Нажмите кнопку + и добавьте схему URL для обратного идентификатора клиента. Чтобы найти это значение:
Откройте файл конфигурации
и найдите ключGoogleService-Info.plist REVERSED_CLIENT_ID.Скопируйте значение этого ключа и вставьте его в поле URL Schemes (Схемы URL) на странице конфигурации.
Оставьте другие поля пустыми.
Нажмите кнопку + и добавьте вторую схему URL. Он совпадает с идентификатором пакета приложения.
Например, если идентификатор пакета –
com.example.ios, введите это значение в поле Схемы 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()); } };