Как получать динамические ссылки с помощью C++

Чтобы получать 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.

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

  2. Выберите приложение в разделе ЦЕЛИ, откройте вкладку Информация и разверните раздел Типы URL.

  3. Нажмите кнопку + и добавьте схему URL для обратного идентификатора клиента. Чтобы найти это значение:

    1. Откройте файл конфигурации GoogleService-Info.plist и найдите ключ REVERSED_CLIENT_ID.

    2. Скопируйте значение этого ключа и вставьте его в поле URL Schemes (Схемы URL) на странице конфигурации.

    3. Оставьте другие поля пустыми.

  4. Нажмите кнопку + и добавьте вторую схему 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());
  }
};