如何通过网页启动应用程序

我们经常会在网站看到在线qq客服,只要你一点击,电脑就会自动启动本机的qq,在你成功登陆之后弹出一个临时聊天的窗口。

 

具体代码:

 

<a href="tencent://message/?uin=215555521&Site=JooIT.com&Menu=yes">

<img border="0" SRC='http://wpa.qq.com/pa?p=1:215555521:3' alt="点击这里给我发消息">

</a>

 

但它是如何实现的呢?下面文章以及微软官方说明详细解释了其工作原理:

 

微软官方说明:http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/pluggable/overview/appendix_a.asp

 

Register protocol,此文中对于 Windows、Linux 和 OS X 操作系统如何注册协议都有说明。比如说 Windows,其实只需写入注册表,即可实现协议与执行程序的关联。例如腾讯的Tencent://Message协议注册表如下:

 

[HKEY_CLASSES_ROOT\TENCENT]

@=”TencentProtocol”

“URL Protocol”=”D:\\Program Files\\Tencent\\QQ\\Timwp.exe”

[HKEY_CLASSES_ROOT\TENCENT\DefaultIcon]

@=”D:\\Program Files\\Tencent\\QQ\\Timwp.exe,1″

[HKEY_CLASSES_ROOT\TENCENT\shell]

[HKEY_CLASSES_ROOT\TENCENT\shell\open]

[HKEY_CLASSES_ROOT\TENCENT\shell\open\command]

@=”\”D:\\Program Files\\Tencent\\QQ\\Timwp.exe\” \”%1\”"

 

此注册表所实现的就是当浏览器(或其它)碰到 tencent://… 时,自动调用 Timwp.exe,并把 tencent://… 地址作为第一个参数传递给 Timwp.exe。

因此可以只要自己注册协议后,就可以通过网页来启动应用程序了。

 

随机推荐
使用阿里云对象存储 OSS 命令行工具 ossutil 自动备份 Windows 服务器
Windows Server 服务器防止远程桌面暴力破解
MySQL数据库日志处理
Node.js实现的简单爬虫
微信开发示例(图片信息的发送)
MySQL汉字转换为拼音
CentOS 7 安全设置 SSH
PHP 开启 Zend Opcache
OS X 中怎样快速调出终端?
async/await 中实现 sleep()