有没有办法在不分离的情况下将 Expo 应用程序与 firebase 动态链接集成?

Sah*_*agi 4 firebase react-native firebase-dynamic-links expo

有没有办法在不分离的情况下将 Expo 应用程序与 firebase 动态链接集成。

sau*_*ito 9

如果您需要动态创建新的动态链接,您可以使用REST API来完成。在更可能的情况下,您只需要您的应用程序打开Firebase 的动态链接,除了配置您的 Expo 应用程序以处理通用链接(即:使用 http/https 的深层链接)之外,您不需要做任何事情。

清单是这样的:

1. 配置你的 app.json

对于 Android,将intentFilters属性添加到您的android属性中:

"android": {
  "intentFilters": [
    {
      "action": "VIEW",
      "data": [
        {
          "scheme": "https",
          "host": "<your-domain>",
          "pathPrefix": "/"
        },
      ],
      "category": [
        "BROWSABLE",
        "DEFAULT"
      ]
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

对于 iOS,将associatedDomains属性添加到ios

"ios": {
  "associatedDomains": ["applinks:<your-domain>"]
}
Run Code Online (Sandbox Code Playgroud)

2. 配置您的域以允许应用程序处理来自它的链接

如果您从特定位置提供配置文件,Android 和 iOS 将允许您的应用打开来自您域的链接:

安卓: https://<your-domain>/.well-known/assetlinks.json

IOS: https://<your-domain>/.well-known/apple-app-site-association

assetlinks.json 看起来像这样:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "<android-package-name>",
    "sha256_cert_fingerprints":
    ["<your-sha256-certificate-fingerprints>"]
  }
}]
Run Code Online (Sandbox Code Playgroud)

apple-app-site-association像这样:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "<your-team-id>.<ios-bundle-identifier>",
                "paths": [ "*" ]
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处此处阅读有关这些文件的更多信息。

要获取应用签名证书的 SHA256 指纹,您可以使用 keytool:

keytool -list -v -keystore <your-key-file>
Run Code Online (Sandbox Code Playgroud)

输入密钥库密码后,它会打印许多密钥库信息,包括 SHA256 指纹。

如果您的网站同时托管在 Firebase 上,assetlinks.json并且apple-app-site-association可以在您在 Firebase 的项目上创建应用程序时自动生成。否则,只需将这些文件放在域的根目录中即可。

3. 创建 Firebase 动态链接

我认为这一步主要是不言自明的,但只是一些注意事项:

  1. 设置您的短 URL 链接:最后您将拥有/发送给您的用户
  2. 设置您的动态链接:在这里定义您的 deelink(您希望应用程序处理的链接)
  3. 为 iOS 定义链接行为:您很可能希望单击“打开 iOS 应用程序中的深层链接”并从列表中选择您的应用程序(如果您还没有,请为项目中的每个平台创建一个应用程序)
  4. 为 Android 定义链接行为:与之前相同,但有更多选项可供选择
  5. 配置(或不配置)广告系列跟踪就大功告成了。

请记住,您应该始终通过单击而不是直接在浏览器上输入来测试您的深层链接。例如,您可以在 WhatsApp 上将链接发送给自己或放置一些笔记应用程序。

其他可能有用的资源: