Вы можете создавать короткие или длинные Dynamic Links с помощью API Firebase Dynamic Links . API использует несколько дополнительных структур параметров для создания ссылок. Короткие ссылки также могут быть созданы из ранее созданной длинной ссылки. Firebase Dynamic Links генерирует URL-адрес, подобный следующему:
https://example.page.link/WXYZ
C++ SDK работает как для Android, так и для iOS, при этом для каждой платформы требуется дополнительная настройка.d
Прежде чем начать
Прежде чем вы сможете использовать Firebase Dynamic Links , вам необходимо:
Зарегистрируйте свой проект C++ и настройте его для использования Firebase.
Если ваш проект C++ уже использует Firebase, значит, он уже зарегистрирован и настроен для Firebase.
Добавьте Firebase C++ SDK в свой проект C++.
Обратите внимание, что добавление Firebase в ваш проект C++ включает в себя задачи как в консоли Firebase , так и в вашем открытом проекте C++ (например, вы загружаете файлы конфигурации Firebase из консоли, а затем перемещаете их в свой проект C++).
Андроид
- В консоли Firebase откройте раздел Dynamic Links .
Если вы еще не приняли условия обслуживания и не установили префикс URI для своих Dynamic Links , сделайте это при появлении соответствующего запроса.
Если у вас уже есть префикс URI Dynamic Links , обратите на него внимание. Вам необходимо предоставить префикс URI Dynamic Links при программном создании Dynamic Links .
- Рекомендуется : укажите шаблоны URL-адресов, разрешенные в глубоких ссылках и резервных ссылках. Поступая таким образом, вы предотвращаете создание неавторизованными лицами Dynamic Links , которые перенаправляют с вашего домена на сайты, которые вы не контролируете. См . Шаблоны URL-адресов белого списка .
iOS
- В консоли Firebase откройте раздел Dynamic Links .
Если вы еще не приняли условия обслуживания и не установили префикс URI для своих Dynamic Links , сделайте это при появлении соответствующего запроса.
Если у вас уже есть префикс URI Dynamic Links , обратите на него внимание. Вам необходимо предоставить домен Dynamic Links при программном создании Dynamic Links .
- Клиентская библиотека Firebase Dynamic Links C++ использует пользовательские схемы URL-адресов в iOS для обработки ссылок. Вы должны добавить в свое приложение собственные схемы URL-адресов, чтобы поддерживать получение Dynamic Links :
- Чтобы открыть конфигурацию проекта, дважды щелкните имя проекта в левом дереве. Выберите свое приложение в разделе «ЦЕЛИ» , затем выберите вкладку «Информация» и разверните раздел «Типы URL-адресов» .
- Нажмите кнопку + и добавьте схему URL-адреса для вашего обратного идентификатора клиента. Чтобы найти это значение, откройте файл конфигурации
и найдите ключGoogleService-Info.plist REVERSED_CLIENT_ID
. Скопируйте значение этого ключа и вставьте его в поле « Схемы URL-адресов» на странице конфигурации. Остальные поля оставьте пустыми. - Нажмите кнопку + и добавьте вторую схему URL-адресов. Он совпадает с идентификатором пакета вашего приложения. Например, если идентификатор вашего пакета —
com.example.ios
, введите это значение в поле «Схемы URL-адресов» . Идентификатор пакета вашего приложения можно найти на вкладке «Общие» конфигурации проекта ( Идентификация > Идентификатор пакета ).
Используйте консоль Firebase
Если вы хотите создать одну Dynamic Link либо для целей тестирования, либо для того, чтобы ваша маркетинговая команда могла легко создать ссылку, которую можно использовать в чем-то вроде сообщения в социальной сети, самый простой способ — посетить консоль Firebase и создать ее. вручную, следуя пошаговой форме.
Пользовательские домены
Вы можете лучше контролировать брендинг Dynamic Link , используя собственный домен вместо субдомена goo.gl
или page.link
. Следуйте этим инструкциям , чтобы настроить собственный домен для вашего проекта.
Использование API Firebase Dynamic Links
Создать и инициализировать приложение
Прежде чем вы сможете создавать Dynamic Links , вам необходимо создать и инициализировать объект 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"));
Инициализировать библиотеку Dynamic Links
Перед созданием Dynamic Link необходимо сначала инициализировать библиотеку Dynamic Links :
::firebase::dynamic_links::Initialize(app, null);
Создание длинной Dynamic Link из параметров
Чтобы создать динамическую ссылку, создайте объект DynamicLinkComponents, задав любой из необязательных членов для дополнительной конфигурации и передав его в dynamic_links::GetShortLink
или dynamic_links::GetLongLink
.
В следующем минимальном примере создается длинная динамическая ссылка на https://www.example.com/, которая открывается с помощью вашего приложения Android com.example.android.package_name и приложения iOS com.example.ios:
firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios"); firebase::dynamic_links::AndroidParameters android_parameters( "com.example.android.package_name"); firebase::dynamic_links::DynamicLinkComponents components( "https://www.example.com/", "example.page.link"); components.android_parameters = &android_parameters; components.ios_parameters = &ios_parameters; firebase::dynamic_links::GeneratedDynamicLink long_link = firebase::dynamic_links::GetLongLink(components);
Создание короткой Dynamic Link
Чтобы создать короткую динамическую ссылку, передайте ранее созданную длинную ссылку в GetShortLink
или создайте DynamicLinkComponents
так же, как указано выше.
GetShortLink
опционально принимает дополнительный параметр конфигурации DynamicLinkOptions
с PathLength
; это позволяет вам контролировать способ создания ссылки. Для создания короткой ссылки требуется сетевой запрос к бэкэнду Firebase, поэтому GetShortLink
является асинхронным и возвращает Future<GeneratedLink>
.
Например:
firebase::dynamic_links::DynamicLinkOptions short_link_options; short_link_options.path_length = firebase::dynamic_links::kPathLengthShort; firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result = firebase::dynamic_links::GetShortLink(components, short_link_options);
Если в вашей программе есть цикл обновления, который выполняется регулярно (скажем, 30 или 60 раз в секунду), вы можете проверять результаты один раз за каждое обновление:
if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) { firebase::dynamic_links::GeneratedDynamicLink link = *result.result(); printf("Create short link succeeded: %s\n", link.url.c_str()); } else { printf("Created short link failed with error '%s'\n", result.error_message()); } }