我们已经将 chrome 配置为tel:
使用 Skype 打开链接。一台计算机在单击电话链接后不会直接打开 Skype,而是询问是否应打开 Skype(在弹出窗口中)。
我尝试重置 Chrome,并尝试将处理程序更改为其他软件,以测试问题是否出在 Skype 上。但 Chrome 似乎通常会在打开外部应用程序之前要求确认。
我们如何配置 Chrome 来不是一遍又一遍地要求确认?这是在 Windows 10 上。
答案1
现在可以使用 Chrome 79 以上版本来实现。得益于Reddit 链接从@Kropotoff 之前的回答来看,您可以通过更新系统设置恢复“始终在关联应用程序中打开这些类型的链接”选项。
对于 Windows:
或者编辑注册表并添加REG_DWORD注册表项为:
Software\Policies\Google\Chrome\ExternalProtocolDialogShowAlwaysOpenCheckbox
对于 macOS:
defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool true
至少在 Mac 上,你似乎需要退出并重新启动 Chrome,该选项才可用。
另一种方法
除了启用复选框,然后启动 Chrome 以选中复选框并确保其保留在 Chrome 配置文件中之外,似乎还可以通过命令行将特定协议处理程序 URI 列入白名单。这对 Selenium 和其他自动化很有帮助,这意味着 URI 无需用户干预即可打开,您无需预先配置浏览器。
假设您的协议处理程序是myprotocol1://whatever
和myprotocol2://whatever
,您可以在 Mac 上执行此操作。如果您选择这种方式,似乎不需要费心设置上面的复选框。
defaults write com.google.Chrome URLAllowlist -array 'myprotocol1://*' 'myprotocol2://*' 'myprotocol3://*'
Chrome 85 及以上版本支持名称“URLAllowlist”,并且它是 Chrome 100+ 所必需的;早期版本的 Chrome(15-85)也支持使用“URLWhitelist”代替“URLAllowlist”,但 URLWhitelist 已被弃用并被删除。
我还没有在 Windows 上尝试过,但看起来有关于URLAllowlist 的企业策略页面。
答案2
对于 Windows 来说,简单的修复方法是创建一个包含以下内容的 .reg 文件并运行它:
(适用于 Chrome 和 Chromium Edge)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"ExternalProtocolDialogShowAlwaysOpenCheckbox"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge]
"ExternalProtocolDialogShowAlwaysOpenCheckbox"=dword:00000001
答案3
Linux 解决方案
sudo mkdir -p /etc/opt/chrome/policies/{managed,recommended}
echo '{"ExternalProtocolDialogShowAlwaysOpenCheckbox": true}' | sudo tee /etc/opt/chrome/policies/managed/protocol_open.json > /dev/null
如果您使用 chromium 而不是 chrome 然后使用/etc/chromium
而不是/etc/opt/chrome
。
无需重新启动。
答案4
我一直无法显示复选框。但是,我可以通过添加 ExternalProtocolDialogShowAlwaysOpenCheckbox 设置和 Edge URLAllowlist 和 Chrome URLWhitelist 来抑制对话框。配置这两个后,链接就可以顺利运行。我对注册表进行了以下更改。一个用于 Chrome,一个用于 Edge。
我将 Skype 放在了下面显示的 URL 列表中;但是我使用了特定于我的组织的另一个协议。
对于 Edge:(这似乎仅适用于基于 Chromium 构建的新 Edge)
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\URLAllowlist]
"1"="Skype://*"
[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Edge]
"ExternalProtocolDialogShowAlwaysOpenCheckbox"=dword:00000001
对于 Chrome:
[HKEY_CURRENT_USER\Software\Policies\Google\Chrome\URLWhitelist]
"1"="Skype://*"
[HKEY_CURRENT_USER\SOFTWARE\Policies\Google\Chrome]
"ExternalProtocolDialogShowAlwaysOpenCheckbox"=dword:00000001