阻止应用在Chrome“自定义标签”中打开链接(即直接在默认浏览器中打开)


20

不久前,从Android JellyBean或更高版本的Chrome 45开始,Google添加了一项称为Chrome自定义标签的新功能。

什么是Chrome自定义标签?

当用户点击URL来启动浏览器或使用WebViews构建自己的应用内浏览器时,应用程序开发人员将面临选择。

这两个选项都带来了挑战-启动浏览器是无法自定义的繁重的上下文切换,而WebView不会与浏览器共享状态并增加维护开销。

Chrome自定义标签可让应用更好地控制其网络体验,并且无需借助WebView即可在本机内容和网络内容之间无缝切换。

什么时候可用?

从Chrome 45开始,Chrome自定义标签现在可在所有受支持的Android版本(从Jellybean开始)上供所有Chrome用户使用。

自定义标签演示

Google已在其某些应用程序(例如Google+Google Search)中集成了此功能,现在,第三方应用程序也可以使用此功能(例如TwitterStack Exchange)。

尽管某些应用提供了启用/禁用它的设置(例如Google搜索),但其他应用似乎无法禁用它。我知道我仍然可以通过点击溢出菜单(右上角3点)并选择在Chrome中打开来在Chrome中打开链接。但是,最好是可以在特定应用程序上将其禁用。

因此,我的问题是:是否可以禁用此功能,最好是在选择性应用程序上?(禁用,我的意思是直接在默认浏览器中打开链接,或提示用户选择浏览器)

注意:我愿意接受所有建议,包括根解决方案,甚至在最坏的情况下卸载Chrome。但是,更实际的答案是首选。

Answers:


8

“自定义标签”帮助页面显示:

如果用户未安装最新版本的Chrome,该怎么办?

“自定义选项卡”将ACTION_VIEWIntent与Extras键结合使用来自定义UI。这意味着默认情况下该页面将在系统浏览器或用户的默认浏览器中打开。

如果用户安装了Chrome,并且它是默认的浏览器,它将自动选择EXTRAS并显示自定义的用户界面。其他浏览器也可以使用Intent Extras提供类似的自定义界面。

这意味着,如果将其他浏览器设置为默认浏览器(可以通过“设置”>“应用”>“齿轮”菜单>“默认应用”来完成),则任何尝试打开“自定义标签”的应用都将在该浏览器中打开链接。

更新:这也意味着,有可能编写一个“管理器”应用程序,该应用程序以浏览器的形式显示(处理ACTION_VIEW意图),并在收到此意图后检查其是否具有与“自定义标签”相关的内容EXTRAS,并根据某些逻辑打开您的浏览器使用明确意图进行选择(明确指定所需的应用包名称)。


谢谢,更改默认浏览器在某些应用程序(例如Stack Exchange应用程序)上可以使用,但在其他应用程序(例如Google News&Weather)上则不能使用,由于某些原因不确定...经理应用程序是一个有趣的主意,我如果可以与自动化应用程序配合使用,将尝试进行试验!
安德鲁·T。

1
这是因为“新闻与天气”(尝试2.3.3版)在意图中明确指定了组件:START u0 {act=android.intent.action.VIEW dat=http://news.google.com/... flg=0x14002000 cmp=com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity (has extras)} from uid 10041 on display 0。风格不好,但是您对此无能为力:(
Mikhail Naganov '16

2

我正在使用7.1.1 android。打开Goog​​le应用程序或进行搜索,点击左上角的汉堡包,然后进入“设置”。

进入帐户和隐私。

关闭“在应用程序中打开网页”。

这似乎关闭了chrome自定义标签。


3
这只会在搜索应用程序(可能是其他Google应用程序)中禁用自定义标签,而不会在系统范围内禁用。
基思·特姆布雷
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.