javascript - 如何检测浏览器的协议(protocol)处理程序?

标签 javascript browser protocols protocol-handler moniker

我已经创建了一个自定义 URL 协议(protocol)处理程序。

http://

mailto://

自定义://

我已经注册了一个 WinForms 应用程序来进行相应的响应。这一切都很好。

但我希望能够优雅地处理用户尚未安装自定义 URL 协议(protocol)处理程序的情况。

为了能够做到这一点,我需要能够检测浏览器的注册协议(protocol)处理程序,我假设来自 JavaScript。但是我一直无法找到一种方法来轮询信息。我希望找到解决这个问题的方法。

感谢您分享任何想法。

最佳答案

这将是一个非常非常 hacky 的方法来做到这一点……但是这行得通吗?

  • 正常添加链接...
  • 但是将一个 onclick 处理程序附加到它,设置一个计时器并为窗口添加一个 onblur 处理程序
  • (理论上)如果浏览器处理链接(应用程序 X)将从窗口加载并窃取焦点...
  • 如果 onblur 事件触发,清除计时器...
  • 否则在 3-5 秒内让你的超时触发...并通知用户“嗯,看起来你没有安装 Mega Uber Cool 应用程序...你想现在安装它吗?(好的)(取消)”

远非防弹......但它可能有帮助?

关于javascript - 如何检测浏览器的协议(protocol)处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21009260/

相关文章:

javascript - ERROR 403 (Forbidden) 当 HTML 包含 CSS 和 JS 等资源时

http - 如何通过一个 HTTP 请求下载多个文件?

ios - swift 2 : @objc protocol and enum array

javascript - 两个 .js 文件的 GetScriptDescriptors() 方法 : strange unexpected behavior

javascript - 查找输入值并将其与 JSON 数据进行比较

javascript - clearInterval 不起作用

javascript - 浏览器的 'Back' 按钮转到倒数第二页。为什么?

javascript - 我如何编码/解码这个专有校验和(Athena 16C PID Controller )?

clojure - 使用跨多个命名空间定义的 Clojure 多方法

javascript - 方法参数声明中的 "colon"表示法之后可能会出现什么情况?