想在网页里放一键加好友的入口,核心思路是拼接特定协议的URL。不同场景、不同终端,用的链接格式并不一样。
网页端唤起QQ聊天窗口

最通用的做法是用腾讯官方提供的WPA接口:
http://wpa.qq.com/msgrd?v=3&uin=目标QQ号&site=来源标识&menu=yes

把
目标QQ号换成实际号码,用户点击后会跳转到网页版QQ的临时会话窗口,未加好友的情况下会提示添加。这个链接在移动端浏览器也能用,但体验不如客户端直接唤起流畅。已安装客户端时的深度调用

如果判断用户本地装了QQ,可以用私有协议直接调起客户端:
tencent://AddContact/?fromId=来源ID&fromSubId=1&subcmd=all&uin=目标QQ号&website=来源域名
参数说明:
fromId一般填45或50,代表不同入口场景;website建议填你当前页面的域名,方便做来源统计。这种链接在Windows和Android上兼容性较好,iOS端部分浏览器会拦截,需要配合提示文案引导用户手动复制QQ号搜索。QQ群的特殊处理

加群链接不能简单替换号码,得走官方生成渠道:
1. 访问QQ群官网的"加群组件"页面
2. 选择目标群,系统会生成带加密参数的专属链接
3. 嵌入代码通常是
https://qm.qq.com/q/xxxx这种短链形式不建议直接用
tencent://message/?uin=群号这种写法,群号和QQ号在协议层是两套体系,硬拼链接会导致跳转失败或进到错误的聊天对象。实际部署时的坑
- 浏览器兼容性:Safari和微信内置浏览器对
tencent://协议限制较多,建议准备兜底方案,比如同时显示QQ号码供手动搜索- 号码隐私:不要把个人QQ号直接暴露在URL明文里,容易被爬虫抓取后遭遇垃圾添加,考虑用后端做一次跳转封装
- 状态检测:无法通过前端JS判断用户是否已登录QQ,所以链接点击后的实际表现不可控,页面文案要留有余地
测试阶段务必用真机走完整流程,模拟器和桌面浏览器的行为往往和移动端实际情况有偏差。
立即登录