29

Firefox 不会按应有的方式触发点击链接的意图。因此,无法通过单击 Firefox 中的链接来启动他们的应用程序(这在 Chrome 和其他浏览器中是可能的)。

编辑:请记住,这是 2013 年的帖子。

所需的行为如下:在我的网站上,我有一个链接,单击该链接时应启动我的 Android 应用程序。如果未安装该应用程序,最好打开其在 Google Play 中的页面进行下载。

方法

我实现它的方式是使用以下形式的“意图 URI”: intent://myhost.com/#Intent;scheme=myscheme;package=com.myapp;end

在应用程序中,我在清单中注册了一个意图过滤器并侦听匹配的意图。但是,当点击链接时,由浏览器触发这样的意图,以便我的应用程序可以启动。

我已经在各种浏览器上测试过这种方法,并且它适用于大多数浏览器。Firefox 除外。在其他浏览器中,我的应用程序要么启动,要么加载它在 Google Play 中的页面(以防它未安装在设备上)。

带有“intent URI”的方法是谷歌推荐的方法。它在 Chrome 和其他一些浏览器上完美运行。还有其他方法。我已经阅读了许多关于可能性的主题和文章。主要替代方案是:

替代方法

  1. 使用自定义方案,例如myscheme://mywebsite.com
  2. 使用常规的 http 链接,例如http://mywebsite.com

不推荐备选方案 1 有两个原因: - 我不拥有这样的方案,它在全球范围内不存在,这是错误的。谷歌也在使用market://...启动 Google Play 应用程序,但他们承认这是错误的,应该改变。- 如果我的应用程序当前没有安装,它将不会启动,并且大多数浏览器都会显示错误页面,这显然是不可取的。

备选方案 2 不适用于大多数浏览器,并且似乎已被弃用,取而代之的是“intent URI”方法。

特别是火狐

仅适用于自定义方案(替代方案 1)。如果是常规的 http 链接(备选方案 2),它只会加载链接并显示网站。在推荐的“intent URI”方法的情况下,它什么也不做。实际上,它会显示一个对话框,询问您是否要启动该应用程序,但是当您单击“是”时,什么也没有发生。因此,Firefox 似乎可以识别“ intent://...”之类的链接,但不能正确处理它们。

问:从 Firefox 中的链接启动应用程序的推荐方法是什么?为什么 Firefox 不支持“intent URI”方法?

相关链接: https ://developers.google.com/chrome/mobile/docs/intents https://stackoverflow.com/a/3472228/1045941(请记住,该线程很旧)

4

1 回答 1

1

一种选择是添加隐藏的 iframe,例如:

<iframe src="myscheme://..." style="visibility: hidden"></iframe>

它经过测试可以在 Firefox 上运行,但不能在 chrome 上运行。您可能想使用一些用户代理检测,这里有一个例子: http: //www.mazdigital.com/blog/post/2014/deep-links-on-mobile-browsers-demystified/

于 2014-11-26T16:13:24.673 回答