接收动态链接 (C++)

要接收您创建的 Firebase 动态链接,您必须将 Dynamic Links SDK 添加到应用中,并创建一个实现 OnDynamicLinkReceived 虚函数的 firebase::dynamic_links::Listener 对象。

C++ SDK 适用于 Android 和 iOS,但需要针对每个平台进行一些额外设置。

开始之前

Android

  1. 如果您尚未将您的应用与 Firebase 项目相关联,请在 Firebase 控制台中进行关联。
  2. 将 Firebase 添加到您的 Android 项目
  3. 将 Firebase 动态链接的依赖项添加到您的应用级 build.gradle 文件中:
    dependencies {
     implementation 'com.google.firebase:firebase-dynamic-links:16.1.2'
    }
  4. 链接 C++ SDK 中的 libapp.alibdynamic_links.a 静态库。

iOS

  1. 如果您尚未将您的应用与 Firebase 项目相关联,请在 Firebase 控制台中进行关联。
  2. 将 Firebase 添加到您的 iOS 项目
  3. Firebase 动态链接 C++ 客户端库在 iOS 上采用自定义网址架构来处理链接。您必须为您的应用添加自定义网址架构,以支持接收动态链接:
    1. 要打开您的项目配置,请在左侧的树状视图中双击项目名称。从目标部分中选择您的应用,然后选择信息标签,并展开网址类型部分。
    2. 点击 + 按钮,并为您的倒序客户端 ID 添加一个网址架构。要找到这个值,请打开 GoogleService-Info.plist 配置文件,然后查找 REVERSED_CLIENT_ID 键。复制该键的值,并将其粘贴到配置页面上的网址架构框中。将其他字段留空。
    3. 点击 + 按钮并添加第二个网址架构。此架构与您的应用的软件包 ID 一致。例如,如果您的软件包 ID 为 com.example.app,请将该值输入到网址架构框中。您可以在项目配置中的常规标签(身份 > 软件包标识符)中找到您的应用的软件包 ID。
  4. 将以下 Pod 包含在您的 Podfile 中:
    pod 'Firebase/DynamicLinks'
  5. 运行 pod install
  6. C++ SDK 中的 firebase.frameworkfirebase_dynamic_links.framework 添加到您的 Xcode 项目。

接收动态链接

创建并初始化应用

您需要先创建并初始化一个 firebase::App 对象,然后才能检查是否已收到动态链接。

包含 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"));

实现侦听器以检查动态链接

要检查是否已收到动态链接,请实现并使用 firebase::dynamic_links::Listener 类。

包含用于接收动态链接的头文件:

#include "firebase/dynamic_links.h"

初始化 Firebase 动态链接库:

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

创建一个实现 firebase::dynamic_links::Listener 的对象,并使用 SetListener() 将其提供给 Firebase 动态链接库,或者将其作为第二个参数传递给 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());
  }
};

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面