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

标签 google-chrome url macos-sierra

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

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

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

但是当我在谷歌浏览器中打开这个页面并点击链接时,应用打不开 .

点击的链接会触发一个 GET 请求,但它的状态是取消。整个请求在 Network Inspector 中显示为红色。

chrome network tab

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

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

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

为什么是这样?如何让它在谷歌浏览器中工作?

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

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

最佳答案

通常,如果 chrome 无法识别协议(protocol),似乎协议(protocol)实际上会传递到操作系统上。所以你可能只是混淆了你的 chrome。

看看怎么样steam://browsemedia适用于 Valve 的游戏经理 Steam。调试该链接,我敢打赌它实际上会得到与您相同的结果。试试看,mailto:me它成功打开了我的电子邮件客户端。显然浏览器不需要发送和实际请求,所以我会忽略你所有的请求分析。我对此进行了测试,“ 已停止 ”状态为 正确 .

我认为您需要重置您在 chrome 中获得的任何自定义处理程序设置。我认为这可能会干扰让操作系统处理它。

关于google-chrome - 如何让 Google Chrome 打开自定义 URL 方案处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43328340/

相关文章:

google-chrome - 在 Ubuntu 14.04 上的 Headless Chrome 中运行 Flash 网页

javascript - 无法在 Chrome 中获取图像的宽度

iphone - 支持 openURL : 的 iPhone 应用程序列表

app-store - Xcode下载失败。使用“购买的页面”再试一次

html - Chrome,Safari 忽略表格中的最大宽度

php - Composer Web 应用程序文件夹结构

php echo 从 url 中删除斜杠

通过 USB 连接的 iPad 在 iOS 11 上不久后从 Safari 开发菜单中消失

macos - HSLab:空音频设备

javascript - 从 javascript 检测断开连接插件