【问题标题】:Ionic Android App Links (deeplink)Ionic Android 应用链接(深度链接)
【发布时间】:2017-08-09 17:56:04
【问题描述】:

我正在设置深度链接,特别是 App links,到目前为止,当用户输入所需的 URL https://myapp.com 并且他们安装了应用程序(应用程序已签名)时,它只会在浏览器中打开。

如果用户安装了应用程序,我已经能够设置自定义 URL 方案,myappcustom://app 可以正常工作。

可以在https://myapp.com/.well-known/assetlinks.json 获得域验证,无需重定向

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.slatedev.notis",
    "sha256_cert_fingerprints":
    ["E5:64:86:D6:EE:F8:1B:72:2F:55:B0:21:98:8B:0B:C8:C5:22:D4:98:08:7E:61:23:B1:A5:6A:1B:68:E0:C0:71"]
  }
}]

我知道该文件必须可以通过 Android Verification Webpage 的以下约束访问

  1. assetlinks.json 文件使用内容类型 application/json 提供。 我已验证标头正在返回此内容类型
  2. assetlinks.json 文件必须可通过 HTTPS 连接访问,无论您的应用程序的意图过滤器是否将 HTTPS 声明为数据方案。 该文件可通过 https 获得
  3. assetlinks.json 文件必须可以在没有任何重定向的情况下访问(没有 301 或 302 重定向)并且可以被机器人访问(您的 robots.txt 必须允许抓取 /.well-known/assetlinks.json)。不应该有任何直接https://myapp.com 访问的重定向。我假设机器人可以访问该 url,因为我还没有设置 robots.txt 文件来阻止访问
  4. 如果您的应用链接支持多个主机域,那么您必须在每个域上发布assetlinks.json 文件。请参阅支持多个主机的应用链接。不支持多个主机域
  5. 不要在清单文件中发布您的应用程序,其中包含可能无法让公众访问的开发/测试 URL(例如任何只能通过 VPN 访问的应用程序)。在这种情况下,一种解决方法是配置构建变体以为开发构建生成不同的清单文件。 虽然列出了多个域(测试版和生产域),但它们可供公众使用

我正在尝试找出可能是什么问题。 myapp.com 是否也需要在没有重定向的情况下可用?我会假设如果我使用 https:// 链接进行连接,这不会是一个问题,但也许命中验证的机器人不使用链接的 https 版本?

有什么想法可能会阻止应用链接连接吗?

【问题讨论】:

  • when a user enters the desired url 他们是否将网址粘贴到网络浏览器搜索栏中?如果是这样,不启动您的应用程序并留在浏览器上是预期的行为。
  • 问题最终是我测试它的方式

标签: android ionic2 deep-linking


【解决方案1】:

问题最终出在我测试应用链接的方式上。我正在使用 codepen 来测试单击一个似乎应该可以工作的链接,因为它适用于自定义 url 方案。

解决方案是使用正常的共享方法(如电子邮件或消息)并选择链接。然后应用链接按预期工作。

【讨论】: