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

Чтобы получить созданные вами динамические ссылки Firebase, вы должны включить SDK динамических ссылок в свое приложение и создать объект 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 для обработки ссылок. Вы должны добавить в свое приложение собственные схемы URL-адресов, чтобы поддерживать получение динамических ссылок.

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

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

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

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

    2. Скопируйте значение этого ключа, а затем вставьте его в поле «Схемы URL-адресов» на странице конфигурации.

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

  4. Нажмите кнопку + , затем добавьте вторую схему URL-адресов. Он совпадает с идентификатором пакета вашего приложения.

    Например, если идентификатор вашего пакета — com.example.ios , введите это значение в поле «Схемы URL-адресов» .

    Идентификатор пакета вашего приложения можно найти на вкладке «Общие» конфигурации проекта ( Идентификатор > Идентификатор пакета ).

Получение динамической ссылки

Создать и инициализировать приложение

Прежде чем вы сможете проверить наличие полученных динамических ссылок, вам необходимо создать и инициализировать объект firebase::App .

Включите файл заголовка для firebase::App :

#include "firebase/app.h"

Следующая часть зависит от вашей платформы:

Андроид

Создайте firebase::App , передав в качестве аргументов среду JNI и ссылку на jobject задания на активность Java:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

Создайте firebase::App :

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

Внедрить прослушиватель для проверки динамических ссылок

Чтобы проверить полученную динамическую ссылку, реализуйте и используйте класс firebase::dynamic_links::Listener .

Включите файл заголовка для получения динамических ссылок:

#include "firebase/dynamic_links.h"

Инициализируйте библиотеку динамических ссылок:

::firebase::dynamic_links::Initialize(app, null);

Создайте объект, реализующий firebase::dynamic_links::Listener , и передайте его в библиотеку динамических ссылок с помощью SetListener() или передайте его в качестве второго аргумента в Initialize .

Чтобы получать динамические ссылки, ваш класс 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());
  }
};