Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Получать динамические ссылки с 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. Выберите приложение из раздела мишеней, а затем выберите вкладку Info, затем разверните раздел Типы URL.

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

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

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

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

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

    Например, если ваш пакет ID является com.example.ios , введите это значение в URL схемы коробки.

    Вы можете найти расслоение идентификатор приложения на вкладке Общие конфигурации проекта (Удостоверение> Bundle Identifier).

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

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

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

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

#include "firebase/app.h"

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

Android

Создание 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"));

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

Для проверки принятого Dynamic Link, внедрить и использовать firebase::dynamic_links::Listener класса.

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

#include "firebase/dynamic_links.h"

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

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

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

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