浏览器协议插件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应用系统)数量多,种类多,外采或开发时期不同,技术平台不同,浏览器兼容性不同,特别是部分老旧系统只能用某种指定浏览器打开使用。
阅读全文
0 0
- 浏览器协议插件Asynchronous Pluggable Protocols
- 协议插件(Asynchronous Pluggable Protocols)
- Asynchronous Pluggable Protocols 初探
- Asynchronous Pluggable Protocol
- protocols 协议
- 浏览器扩展系列————异步可插入协议(pluggable protocol)的实现
- Swift之协议(Protocols)
- Swift协议(Protocols)
- Swift 协议(Protocols)
- Swift 协议(Protocols)
- 浏览器插件和自定义协议
- iOS 笔记六: 协议 Protocols
- Protocols
- 协议的使用(Working with Protocols)
- 对照Java学习Swift--协议(Protocols)
- 浅谈浏览器插件检测 和自定义协议的支持
- iOS开发入门教程之Objective-C · 协议(Protocols)
- Android中的Webview加载URL支持其他协议Protocols
- 网络流Dinic算法
- C++多线程框架
- 推荐系统之隐语义模型
- redis面试题总结
- Arcmap出了问题--显示“ArcGIS Initializing Application”
- 浏览器协议插件Asynchronous Pluggable Protocols
- 两个数做异或运算的结果,可以反向推断出运算的是哪两个数的小技巧
- 中国象棋 洛谷p2051
- iOS探索--页面控制和跳转
- Spring学习笔记(二) --- 装配Bean之自动化装配
- leetcode#33. Search in Rotated Sorted Array
- IT学习网站
- hibernate添加新的功能模块报错 unknown entity
- Hadoop4-用MapReduce写WordCount