如何在调用自定义协议URL之前检测是否安装了客户端应用程序?

时间:2016-08-01 13:02:13

标签: javascript windows web

我正在开发企业Web应用程序。 Web应用程序是在ASP.NET中开发的。客户端都是Windows客户端。

我们需要支持定制"沉默"打印功能,其中在服务器上生成的报告直接发送到用户的本地默认打印机。暂定的方法是开发客户端应用程序,以便在安装它时在Windows注册表中注册自定义协议。然后,Web应用程序可以调用诸如printingapp:// some / url / with / info之类的URL来启动客户端应用程序的实例(如果它尚未运行)。我们的想法是,在用户登录后,Web应用程序会自动调用此URL。

在进行一些原型设计工作时,提出的一个问题是如何检测客户端应用程序是否已经安装?一种想法是尝试调用自定义URL并处理所引发的任何错误(假设我们可以查找的错误指向客户端应用程序未安装)。在测试这种方法时,我发现IE触发了一个模态错误对话框,显示文本"找不到应用程序",然后是另一个带有文本的模态错误对话框"无法打开这个帮助应用程序' printingapp://一些/ URL /与/信息&#39 ;.此地址中指定的协议无效。"它似乎不会被JavaScript代码捕获或抑制这些错误。

有关如何在调用自定义协议URL之前检测客户端应用程序是否已安装的任何建议?虽然目前的重点是IE,但这最终需要支持其他浏览器,如Edge和Chrome。

0 个答案:

没有答案