Firefox for Android在点击链接时无法启动应用

时间:2013-07-31 09:11:10

标签: android firefox android-intent intentfilter url-scheme

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

修改:请注意,这是2013年的帖子。

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

方法

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

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

我已经使用各种浏览器测试了这种方法,并且它适用于大多数浏览器。 除了Firefox之外。对于其他浏览器,我的应用程序会启动,或者Google Play中的页面加载(如果设备上没有安装它)。

具有“意图URI”的方法是Google推荐的方法。它在Chrome和其他一些浏览器上运行良好。 还有其他方法。我已经阅读了许多关于可能性的线索和文章。主要的替代方案是:

替代方法

  1. 使用自定义方案,例如myscheme://mywebsite.com
  2. 使用常规的http链接,例如http://mywebsite.com
  3. 不建议使用备选方案1,原因有两个: - 我没有这样的计划,它在全球范围内不存在,这是错误的。谷歌也在使用market://...启动Google Play应用,但他们承认这是错误的,应该改变。 - 如果我的应用程序当前未安装,则不会启动,并且大多数浏览器都会显示错误页面,这显然是不受欢迎的。

    备选方案2在大多数浏览器上都不起作用,似乎不赞成采用“意图URI”方法。

    特别是Firefox

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

它经过测试可以在firefox上运行,但它不会在chrome上工作。您可能想要使用一些用户代理检测,例如:http://www.mazdigital.com/blog/post/2014/deep-links-on-mobile-browsers-demystified/