首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法可以集成世博会应用程序与防火墙的动态链接,而不分离?

是否有一种方法可以集成世博会应用程序与防火墙的动态链接,而不分离?
EN

Stack Overflow用户
提问于 2020-06-16 18:17:01
回答 3查看 5.9K关注 0票数 9

是否有一种方法可以集成一个世博会应用程序与火源动态链接,而不分离。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-11 16:18:29

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

清单如下所示:

1.配置app.json

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

代码语言:javascript
运行
复制
"android": {
  "intentFilters": [
    {
      "action": "VIEW",
      "data": [
        {
          "scheme": "https",
          "host": "<your-domain>",
          "pathPrefix": "/"
        },
      ],
      "category": [
        "BROWSABLE",
        "DEFAULT"
      ],
      "autoVerify": true // required to work on newer android versions
    }
  ]
]

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

代码语言:javascript
运行
复制
"ios": {
  "associatedDomains": ["applinks:<your-domain>"]
}

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

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

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

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

assetlinks.json的外观如下所示:

代码语言:javascript
运行
复制
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "<android-package-name>",
    "sha256_cert_fingerprints":
    ["<your-sha256-certificate-fingerprints>"]
  }
}]

apple-app-site-association是这样的:

代码语言:javascript
运行
复制
{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "<your-team-id>.<ios-bundle-identifier>",
                "paths": [ "*" ]
            }
        ]
    }
}

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

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

代码语言:javascript
运行
复制
keytool -list -v -keystore <your-key-file>

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

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

3.创建Firebase动态链接

我认为这一步基本上是不言自明的,但只是几个注意事项:

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

记住,您总是应该通过单击而不是直接在浏览器上输入来测试deeplinks。您可以在WhatsApp上将链接发送给自己,或者添加一些便笺应用程序,例如.

其他可能有帮助的资源:

票数 12
EN

Stack Overflow用户

发布于 2021-09-20 07:30:47

除了Pedro Andrade的指示外:

1.) Firebase需要在应用程序>项目设置下提供以下详细信息,以便动态链接工作。

  • Android: SHA 256 (应用程序签署密钥证书指纹)-这可以通过play store > your app > App Integrity > SHA 256检索
  • iOS:应用ID前缀(Team ):developer.apple.com > Certificates, Identifiers & Profiles > your app id > App ID Prefix

令人惊讶的是,这些内容在文档中几乎没有提到,但是在搜索调试预览链接导致的错误时,会出现堆栈溢出结果和其他答案:

代码语言:javascript
运行
复制
Android app '<bundle id>' lacks SHA256. AppLinks is not enabled for the app. Learn more.
iOS app '<bundle id>' lacks App ID Prefix. UniversalLinks is not enabled for the app. Learn more.

可以通过将?d=1添加到动态链接来查看调试预览链接。

https://firebase.google.com/docs/dynamic-links/debug

( 2.)即使您为动态链接使用页面链接样式的域,您的app.json中的关联域/intentFilter域仍然应该是您的实际域

也就是说,如果您正在生成my-app.page.link shortLinks,这是到my-app.com的动态链接,则应该在app.json中使用my-app.com

票数 1
EN

Stack Overflow用户

发布于 2021-11-11 13:57:45

佩德罗·安德拉德的解决方案有效!部分..。

解释:

  1. 您必须而不是在intentFilters和associatedDomains中添加动态链接域,因为它使应用程序可以在应用程序中直接打开链接,因此动态链接不会被处理,并且您无法访问动态链接生成的链接。
  2. 部分原因在于:在应用程序中打开之前,动态链接需要由浏览器(chrome或safari)打开。

示例:在浏览器中打开"<your-domain>.page.link/XLSj",浏览器将直接生成链接:"<your-domain>.com/params/54"到配置的深层链接。

在管理工作流中,我不知道用世博来“读取”动态链接的其他方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62415111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档