我有一个带有链接的html测试页:
<a href="customprotocol:information-from-browser">Link.</a>
如果我在Safari中打开它并单击链接,则处理应用程序(自定义应用程序)将正确打开。
但是,当我在Google Chrome浏览器中打开此页面并单击链接时,该应用程序无法打开。
单击的链接会触发GET请求,但其状态已取消。整个请求在网络检查器中以红色显示。
我以为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中的所有自定义处理程序设置。我认为这可能会干扰操作系统的处理。