Чтобы получать созданные вами Firebase Dynamic Links , необходимо включить SDK Dynamic Links в ваше приложение и создать объект firebase::dynamic_links::Listener , реализующий виртуальную функцию OnDynamicLinkReceived .
C++ SDK работает как с Android, так и с iOS, но для каждой платформы требуется дополнительная настройка.
Прежде чем начать
Прежде чем использовать Firebase Dynamic Links , вам необходимо:
Зарегистрируйте свой проект на C++ и настройте его для использования Firebase.
Если ваш проект на 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» на странице конфигурации.
Остальные поля оставьте пустыми.
Нажмите кнопку «+» , затем добавьте вторую схему URL. Она должна совпадать с идентификатором пакета вашего приложения.
Например, если идентификатор вашего пакета —
com.example.ios, введите это значение в поле «Схемы URL» .Идентификатор пакета вашего приложения можно найти на вкладке «Общие» в конфигурации проекта ( Идентификация > Идентификатор пакета ).
Получение Dynamic Link
Создайте и инициализируйте приложение.
Прежде чем проверять наличие полученных Dynamic Links , вам необходимо создать и инициализировать объект firebase::App .
Включите заголовочный файл для firebase::App :
#include "firebase/app.h"
Следующая часть зависит от вашей платформы:
Android
Создайте firebase::App , передав в качестве аргументов среду JNI и ссылку на jobject Java Activity:
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()); } };