Chrome无法正确处理自定义协议


10

例如,如果我输入steam://connect/127.0.0.1多功能框,它将搜索URL,而不是启动处理该协议的程序。

如何配置Chrome以正确对待自定义协议?


您是否收到对话框询问您是否允许启动外部程序的对话框?
Synetech

Answers:


11

可以在Chrome的Local State文件中对此进行调整。

确切位置取决于您的操作系统。例如:

  • %LOCALAPPDATA%\Google\Chrome\User Data\Local State 在Windows 7上。
  • ~/Library/Application Support/Google/Chrome/Local State 在Mac OS X 10.8上。
  • ~/.config/google-chrome/Local State 在Ubuntu 12.04上。

脚步:

  1. 关闭谷歌浏览器。

  2. 打开Local State文件,然后搜索excluded_schemesprotocol_handler

  3. 添加行

    "steam": false,
    

    excluded_schemes

  4. 重新启动Google Chrome。


嗯,这很奇怪。ed2k://并且magnet:无需手动更改即可正常工作。有什么特殊/错误steam://?也许程序没有正确注册协议?我认为Steam具有关联功能…
Synetech 2012年

我不确定,但是我想Google已经预定义了这些。有任何共同的协议没有入口:httpftp等我只知道我不得不加它为Skype。
丹尼斯

不。我刚刚检查了一下,Chrome默认情况下不包含任何协议(创建一个新的配置文件,然后检查该Local State文件;它甚至没有一个protocol_handler部分)。此外,将其设置为true不会搜索,而是什么也不做,所以不会成为问题。
Synetech

通过在默认情况下,我的意思是Chrome的认可协议本身,所以没有必要创建一个Local State条目。但这只是一个猜测。我不知道该"steam": false,条目是否是实现此目标的正确方法,但它肯定适用于skype://
丹尼斯

1
@Behrang:如我的回答所述,文件的完整路径~/.config/google-chrome/Local State在Ubuntu 12.04上。我不知道其他发行版。
丹尼斯

1

作为参考,好像自定义URI不在Omnibox中被遵循,或者当作为命令行参数传递时,在Chromium中已知的问题560809

在撰写本文时,该问题并未描述任何解决方法:/


1
看来此问题已于2018年4月10日修复。版本66.0.3359.170正常工作。!
CrazyTim
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.