我最近注意到Firefox for Android地址栏的右侧有一个半高的机器人。
这似乎表明本机应用程序可用于您正在查看的网站(StackExchange就是这样一个网站!) - 点击图标启动应用程序并且似乎传递参数以加载同一页面应用程序或做适当的事情。
HTML标记的这一部分是否提醒浏览器应用程序可用,或Android是否只知道'从应用程序安装时开始?
(事实上,当有应用程序可用但没有安装时,会出现图标吗?)
谢谢,
FM
- 更新 -
我卸载了堆栈交换应用程序,图标从Firefox地址栏中消失,所以看起来只有在设备上已经安装了应用程序时才显示图标。
答案 0 :(得分:2)
Android上的Firefox正在使用从第一个版本开始在Android上本机提供的功能,以使用可以基于URI前缀,URI方案或MIME类型的Intent启动第三方应用程序。这些第三方应用程序是定义它们支持的Intent的应用程序。
Firefox将第三方应用程序称为帮助应用。我最近在几个bug描述中找到了对这个表达式的引用,例如:
https://bugzilla.mozilla.org/show_bug.cgi?id=959108 - 帮助应用在m.youtube.com上打开不同的视频。应用程序会在m.youtube.com上打开不同的视频
https://bugzilla.mozilla.org/show_bug.cgi?id=981483 - 帮助应用不会更新或清除之前的网页操作
如果您有兴趣,它应该可以帮助您找到实际的实现。
答案 1 :(得分:0)
你可能会围绕Firefox for Android代码,看看他们是如何做到这一点的,因为我认为它是在某个地方发布的。
我猜他们正在遵循这个算法:
步骤1:创建一个ACTION_VIEW
Intent
,其中Uri
是正在查看的网页的网址。
第2步:在resolveActivity()
上致电PackageManager
,提供此Intent
步骤3:如果resolveActivity()
的结果不是null
,请将图标添加到地址栏
步骤4:如果用户点按图标,请拨打上述startActivity()
Intent