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

<a href="customprotocol:information-from-browser">Link.</a>

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

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

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

google-chrome - 如何让Google Chrome浏览器打开自定义URL方案处理程序?-LMLPHP

我以为Chrome出于安全原因可能会这样做,并且默认情况下会阻止未注册的自定义URL方案。为了解决这个问题,我在html页面中添加了一些javascript(来自this question):
window.location.assign("customprotocol:");

这会弹出一个对话框,询问用户是否要将customprotocol:与该应用程序相关联。

即使在按下OK并设置了chrome识别的customprotocol:处理程序之后,该链接仍不会启动该应用程序。它仍然是已取消的请求。

这是为什么?如何在Google Chrome浏览器中使用它?

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

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

最佳答案

通常,如果chrome无法识别协议(protocol),则实际上协议(protocol)实际上已传递到OS。因此,您可能只是迷惑了您的Chrome。

看看steam://browsemedia如何为Valve的游戏管理员Steam工作。调试该链接,我敢打赌它实际上会获得与您得到的结果相同的结果。尝试用mailto:me成功打开我的电子邮件客户端。显然,浏览器不需要发送和实际请求,因此我将忽略您所有的请求分析。我对此进行了测试,“ Stalled ”状态为正确的

我认为您需要重设chrome中的所有自定义处理程序设置。我认为这可能会干扰操作系统的处理。

10-08 09:31
查看更多