使用新版Edge或Chrome调用外部应用时每次都会出现要打开xxx PROTOCOL吗的提示。除了取消提示之外,可以通过编辑注册表来自定义默认的打开方式。此外,可以使用策略组来管理浏览器的行为,包括控制外部应用程序的自动启动和协议的处理方式。
文章参考
Microsoft Edge 浏览器策略文档 | Microsoft LearnMicrosoft Edge 浏览器支持的所有策略的 Windows 和 Mac 文档
https://learn.microsoft.com/zh-cn/deployedge/microsoft-edge-policies涉及其中的策略:
79-84版本:85版本及后续版本
ExternalProtocolDialogShowAlwaysOpenCheckbox 在外部协议对话框中显示“始终打开”复选框
AutoLaunchProtocolsFromOrigins 定义可以从列出的源启动外部应用程序而不提示用户的协议列表 其他相关项
AutoLaunchProtocolsComponentEnabled 已启用自动启动协议组件(方式二的问题1)
方式一:使用注册表配置策略
可以参考下面步骤,在注册表中的策略组中设置始终使用关联应用打开相关链接.
- 先关闭所有Edge或Chrome浏览器
- 新建一个文本文件,输入或粘贴下面内容,完成后保存并退出
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
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"AutoLaunchProtocolsFromOrigins"="[{\"allowed_origins\": [\"*\"], \"protocol\": \"msoutlook\"}]"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge]
"AutoLaunchProtocolsFromOrigins"="[{\"allowed_origins\": [\"*\"], \"protocol\": \"msoutlook\"}]"
3. 将文件名修改为cancelPromptOpenExternalApp.reg,双击运行。
说明:
- Chromium 79 ~ Chromium 84版本可以通过复选框(ExternalProtocolDialogShowAlwaysOpenCheckbox)控制是否显示提示的弹窗。
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
- Chromium 85版及以后可以通过AutoLaunchProtocolsFromOrigins以json的方式更细粒度地控制协议(protocol)及该协议允许自启动的源[IP:port、域名](allowed_origins),参考Microsoft Edge 浏览器策略文档 | Microsoft LearnMicrosoft Edge 浏览器支持的所有策略的 Windows 和 Mac 文档
https://learn.microsoft.com/zh-cn/deployedge/microsoft-edge-policies#autolaunchprotocolsfromorigins其中部分内容如下
方式二:使用配置文件
Edge打开外部应用时的提醒,可以通过“自动启动协议组件(AutoLaunchProtocolsComponent)”相关的配置文件进行控制。
文件路径为%userprofile%\AppData\Local\Microsoft\Edge\User Data\AutoLaunchProtocolsComponent\组件版本\protocols.json
在Edge浏览器地址栏输入 edge://components/ ,可以查看组件的列表,可以找到Edge AutoLaunch Protocols组件的版本。
作者的Edge对应组件版本如下:
因此,作者的AutoLaunchProtocolsComponent组件配置的路径为 C:\Users\admin\AppData\Local\Microsoft\Edge\User Data\AutoLaunchProtocolsComponent\1.0.0.8\protocols.json
在文件中的 "allow" : [ 后追加
{
"origins":["*"],
"protocol":"协议名"
},
若想要只在某网站下去除提醒,将 * 替换为网站链接。
问题一
如果该方式不生效,在注册表中查看AutoLaunchProtocolsComponentEnabled 是否手动设置为不启动。参考Microsoft Edge 浏览器策略文档 | Microsoft LearnMicrosoft Edge 浏览器支持的所有策略的 Windows 和 Mac 文档https://learn.microsoft.com/zh-cn/deployedge/microsoft-edge-policies#autolaunchprotocolscomponentenabled部分内容如下: