您的位置:首页 > 其它

Tencent://Message/协议的实现原理

2010-07-15 23:41 579 查看
腾讯官方通过 Tencent://Message/协议可以让QQ用户显示QQ/TM的在线状态发布在互联网上;并且点击

,不用加好友也可以聊天:

官方链接: http://is.qq.com/webpresence/code.shtml

具体代码:

<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/zh-cn/library/aa767914(en-us,VS.85).aspx

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,并通过Timwp.exe判断传入的参数格式,若正确则检查系统中是否存在TIMPlatform.exe进程,不存在则提示"系统检测到您的机器上没有启动QQ",若存在则判断是否有已经登陆的QQ,没有登陆的话则提示“请先登陆”,若有已登陆QQ则弹出对应QQ号码的聊天窗口.

阿里旺旺也应用了该方法,注册表表内容如下:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\aliim]
@=""
"URL Protocol"=""

[HKEY_CLASSES_ROOT\aliim\Shell]

[HKEY_CLASSES_ROOT\aliim\Shell\Open]

[HKEY_CLASSES_ROOT\aliim\Shell\Open\Command]
@="D:\\Program Files\\AliWangWang\\wwcmd.exe %1"

aliim:sendmsg?uid=cntaobao发送者帐号&touid=cntaobao接收者帐号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: