【问题标题】:Expo: Deeplinking into Android app from website in Chrome browserExpo:在 Chrome 浏览器中从网站深度链接到 Android 应用程序
【发布时间】:2020-07-09 07:47:31
【问题描述】:

我使用 Expo 构建了一个简单的应用程序,并在 iOS 和 Android 设备上安装了“独立”版本。

该应用有一个自定义方案“myapp://”。在 iOS 上,我可以打开一个浏览器窗口,在 url 中输入“myapp://”并回车,然后系统会询问我是否要打开我的应用程序。

我想在默认的 Android 浏览器 (Chrome) 上复制此行为。但是,当我在 Android 设备上的 Chrome 浏览器中输入“myapp://”时,系统不会提示我打开应用程序。相比之下,当我在 Android 上的 Firefox 浏览器中输入“myapp://”时,我的应用程序会加载。

有谁知道 url 方案应该是什么,以便 Android 在使用 Chrome 时使用方案“myapp://”打开应用程序?我很乐意提供任何其他有用的信息。

一些额外的细节。我的世博会 app.json 包含:

"android": {
  "package": "com.myapp.app",
  "intentFilters": [
    {
      "action": "VIEW",
      "data": [
        {
          "scheme": "https",
          "host": "*.myhost.com",
          "pathPrefix": "/*"
        },
      ],
      "category": [
        "BROWSABLE",
        "DEFAULT"
      ]
    }
  ]
},

https://myhost.com/linking.html 包含如下链接:

<a href='intent:#Intent;scheme=myapp://;package=com.myapp.app;end'>Deeplink</a>

当我在 Android 版 Chrome 中单击该地址的链接时,我已成功导航到该应用程序。不过我想让这个过程自动进行,这样用户在到达myhost.com/linking.html 时就会被发送到应用程序中,而无需点击任何东西......

Chrome version: 80.0.3987.132
Operating system: Android 9

【问题讨论】:

    标签: android google-chrome expo deep-linking url-scheme


    【解决方案1】:

    Android 也支持深度链接。您实际上可以在打开一个特定的 url 时在 android 上启动一个应用程序,这很容易实现。更多关于deep linking on android 和链接助手的快捷方式link assistant

    【讨论】:

    • 我正在使用 expo,这意味着我无法直接访问 Android 应用程序的底层 Java,这似乎是这些链接所必需的......
    • 好吧,这意味着......好吧,博览会文档说它也应该是可能的。 docs.expo.io/versions/latest/workflow/linking/#linking-module
    • 事实证明,深度链接问题仅存在于 Chrome 中,而不存在于 Firefox 中(请参阅问题的编辑)。如果您知道为什么会这样,我会很感激您的想法!
    • 该死的我可以理解!如果您要发布应用程序,请确保测试构建的 apk 和 ipa。我曾经在 javascript 中遇到日期问题,它在模拟器和 android 设备上都可以正常工作,但由于某种原因,它在编译 ipa 后拒绝在 iOS 设备上工作。为什么会这样?这可能是一个 reactjs 问题,因为两个浏览器都使用不同的引擎,并且 chrome 可能对某些反应进程有更多限制。我想知道如果你在 safari 上调试它会发生什么。
    猜你喜欢
    • 2015-07-31
    • 2016-06-06
    • 2015-07-05
    • 2015-02-26
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多