浏览器协议插件Asynchronous Pluggable Protocols

来源:互联网 发布:淘宝女装拍摄照相机 编辑:程序博客网 时间:2024/06/10 09:46

浏览器调用客户端可执行程序

Asynchronous Pluggable Protocols,异步可插入协议,允许开发者创建可插协议处理,MIME过滤器以及命名空间处理器,工作在微软IE4.0浏览器以及更高版本或者URL moniker中。这涉及到Urlmon.dll动态链接库所公开(输出)的可插协议诸多功能。

应用场景

  • tencent协议:打开tencent://message/?uin=要链接的QQ号这样的网页链接时自动打开本地的QQ程序。
  • thunder协议:当我们单击一个thunder的迅雷链接时会自动打开本地的迅雷下载程序。

原理解析

当浏览器解析到自定义的URL协议时,就会从注册表中进行查找,并启动该协议注册的相应应用程序。所以我们只需要在注册表中注册一个自定义URL协议及对应应用程序的映射即可。

技术实现思路解析

  • 节点1:浏览器打开URL Protocol;
  • 节点2:客户端已注册URL Protocol;
  • 节点3:客户端已安装URL Protocol 处理器(可执行文件如:exe/bat);

以上三个关键节点都成功即完成浏览器调用本地程序的动作。

  • 问题1:实际情况客户端可能未知。

        解决办法:做一个安装程序来进行注册和可执行文件的部署。
  • 问题2:如何探测客户端已注册并部署了可执行文件。

        解决办法1:针对不同浏览器做插件(如IE:ActiveX)将插件一同打包安装到客户机,当浏览器探测到插件就证明安装部署了,如果探测异常或者查找不到插件可提示安装。        问题2.1:插件要根据不同浏览器开发,要考虑版本兼容性        问题2.2:浏览器探测到插件后会提示各种弹窗信息(允许加载、安全提示),不友好    解决办法2:做windows Service监听TCP端口,浏览器主动探测客户端是否通信成功如果成功证明安装。这种方式目前最可靠稳定。

案例

解决问题:指定某种浏览器打开对应Web应用程序(网站)。
问题来源:企业信息化应用系统(这里谈的是Web应用系统)数量多,种类多,外采或开发时期不同,技术平台不同,浏览器兼容性不同,特别是部分老旧系统只能用某种指定浏览器打开使用。
浏览器识别控制流程图

原创粉丝点击