获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

使用 C++ 接收动态链接

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

要接收您创建的 Firebase 动态链接,您必须在您的应用中包含动态链接 SDK,并创建一个实现OnDynamicLinkReceived虚函数的 firebase firebase::dynamic_links::Listener对象。

C++ SDK 适用于 Android 和 iOS,每个平台都需要一些额外的设置。

在你开始之前

在使用Firebase 动态链接之前,您需要:

  • 注册您的 C++ 项目并将其配置为使用 Firebase。

    如果您的 C++ 项目已经使用 Firebase,那么它已经为 Firebase 注册和配置。

  • Firebase C++ SDK添加到您的 C++ 项目。

请注意,将 Firebase 添加到您的 C++ 项目涉及Firebase 控制台和您打开的 C++ 项目中的任务(例如,您从控制台下载 Firebase 配置文件,然后将它们移动到您的 C++ 项目中)。

添加自定义 URL 方案(仅适用于 iOS)

Firebase 动态链接 C++ 客户端库在 iOS 上使用自定义 URL 方案来处理链接。您必须将自定义 URL 方案添加到您的应用程序以支持接收动态链接。

  1. 要打开您的项目配置,请双击左侧树视图中的项目名称。

  2. TARGETS部分选择您的应用,然后选择Info选项卡,然后展开URL Types部分。

  3. 单击+按钮,然后为您的反向客户端 ID 添加 URL 方案。要找到这个值:

    1. 打开GoogleService-Info.plist配置文件,然后查找REVERSED_CLIENT_ID键。

    2. 复制该键的值,然后将其粘贴到配置页面上的URL 方案框中。

    3. 将其他字段留空。

  4. 单击+按钮,然后添加第二个 URL 方案。这与您的应用程序的捆绑 ID 相同。

    例如,如果您的捆绑包 ID 是com.example.ios ,请将该值输入到URL 方案框中。

    您可以在项目配置的General选项卡中找到您应用的 bundle ID( Identity > Bundle Identifier )。

接收动态链接

创建和初始化应用程序

在检查收到的动态链接之前,您需要创建并初始化一个firebase::App对象。

包括firebase::App的头文件:

#include "firebase/app.h"

下一部分因您的平台而异:

安卓

创建jobject firebase::App ,将 JNI 环境和对 Java Activity 的对象引用作为参数传递:

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

要接收动态链接,您的侦听器类必须实现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());
  }
};