要接收您创建的 Firebase Dynamic Links 动态链接,您必须将 Dynamic Links SDK 添加到应用中,并创建一个 firebase::dynamic_links::Listener
对象以实现虚拟函数 OnDynamicLinkReceived
。
C++ SDK 适用于 Android 和 iOS,但需要针对每个平台进行一些额外设置。
准备工作
在使用 Firebase 动态链接之前,您需要:
注册 C++ 项目并将其配置为使用 Firebase。
如果您的 C++ 项目已在使用 Firebase,那么该项目已经注册并已配置为使用 Firebase。
将 Firebase C++ SDK 添加到您的 C++ 项目。
请注意,将 Firebase 添加到 C++ 项目需要在 Firebase 控制台中和打开的 C++ 项目中执行若干任务(例如,从控制台下载 Firebase 配置文件,然后将配置文件移动到 C++ 项目中)。
添加自定义网址架构(仅适用于 iOS)
Firebase 动态链接 C++ 客户端库在 iOS 上采用自定义网址架构来处理链接。您必须为您的应用添加自定义网址架构,才可接收动态链接。
要打开您的项目配置,请在左侧的树状视图中双击项目名称。
从目标部分中选择您的应用,再选择信息标签页,然后展开网址类型部分。
点击 + 按钮,为您的倒序客户端 ID 添加一个网址架构。要找到这个值,请执行以下操作:
打开
配置文件,查找GoogleService-Info.plist REVERSED_CLIENT_ID
键。复制该键的值,然后将其粘贴到配置页面上的网址架构框中。
将其他字段留空。
点击 + 按钮,添加第二个网址架构。这个值与您应用的软件包 ID 相同。
例如,如果您的软件包 ID 为
com.example.ios
,请将该值输入网址架构框中。您可以在项目配置的常规标签页(身份 > 软件包标识符)中找到您的应用的软件包 ID。
接收动态链接
创建并初始化应用
您需要先创建并初始化一个 firebase::App
对象,然后才能检查是否已收到 Dynamic Links 动态链接。
包含 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 Links 动态链接,请实现并使用 firebase::dynamic_links::Listener
类。
包含用于接收动态链接的头文件:
#include "firebase/dynamic_links.h"
初始化动态链接库:
::firebase::dynamic_links::Initialize(app, null);
创建一个实现 firebase::dynamic_links::Listener
的对象,并使用 SetListener()
将其提供给 Dynamic Links 库,或者将其作为第二个参数传递给 Initialize。
要接收 Dynamic Links 动态链接,您的侦听器类必须实现 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()); } };