如何让Google Chrome打开自定义网址计划处理程序?

ˆᵛˆ*_*ˆᵛˆ 6 url google-chrome macos-sierra

我有一个带有链接的html测试页面:

<a href="customprotocol:information-from-browser">Link.</a>
Run Code Online (Sandbox Code Playgroud)

如果我在Safari中打开它并单击链接,处理应用程序(自定义应用程序)将正确打开.

但是,当我在谷歌浏览器中打开此页面并单击该链接时,该应用程序无法打开.

单击的链接会触发GET请求,但它的状态会被取消.整个请求在网络检查器中以红色显示.

chrome网络标签

我想也许Chrome出于安全原因这样做,并默认阻止未注册的自定义URL方案.为了解决这个问题,我在html页面添加了一些javascript(来自这个问题):

window.location.assign("customprotocol:");
Run Code Online (Sandbox Code Playgroud)

弹出一个对话框,询问用户是否想要将customprotocol:与app相关联.

即使在按下OK并因此设置chrome识别的customprotocol:handler之后,该链接仍然无法启动应用程序.它仍然是取消的请求.

为什么是这样?如何在Google Chrome中使用此功能?


注1:AFAIK,我的所有软件都更新到最新版本.

注意2:取消的请求没有响应和预览信息.在时间安排下,请求显示为停滞不前.

Mig*_*cia 0

在 Chrome(桌面版)上,您可以通过 registerProtocolHandler api 注册自定义协议。

https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler

  • 这是行不通的。出现注册弹出窗口(如前所述)。但该链接仍然显示已取消的请求(和以前一样)。 (2认同)