iOS调用QQ客户端发起临时会话
原文链接 http://it7090.com/2016/06/08/iOS-iOS%E8%B0%83%E7%94%A8QQ%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E8%B5%B7%E4%B8%B4%E6%97%B6%E4%BC%9A%E8%AF%9D/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
前段时间项目中有个需求,在App内调用QQ客户端,在不是好友前提下,向指定的客服QQ发起临时会话,很简单的一个需求,但是实际实现起来却碰到很多问题.
- QQ开发者平台,并没有找到App调用QQ客户端发起临时会话方法,(只提供了网页端接入方法)
- 网上搜到的一些方法,大部分都粗秒淡写,要么可以调用QQ客户端,不能成功发送消息,要么是其他问题.
经过一段时间摸索,发现接入方法相当简单,现将接入方法分享给大家,希望有同样需求的同鞋,少走弯路.
效果:
需求:
App内调用QQ客户端,在不是好友前提下,向指定QQ号发起临时会话
接入方法:
用来接收临时消息QQ号(拿这个QQ号举例:1099779883)需开通QQ推广功能,未开通QQ推广功能,是不能接收陌生人消息的,开通方法如下:
1.开通方式:打开QQ推广网址 http://shang.qq.com 并用接收临时消息QQ号(1099779883)登录
2.点击顶部导航栏:推广工具,(如图):
3.在弹出菜单中点击'立即免费开通'(如图:)即可
将QQ(mqq
字段)添加到项目plist文件白名单中(iOS9新出要求),方法如下:
1.在项目info.plist添加LSApplicationQueriesSchemes
字段 类型Array
2.在此Array中添加一个 item 值设为:mqq
(如图)
直接上代码:
//是否安装QQ
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"mqq://"]])
{
//用来接收临时消息的客服QQ号码(注意此QQ号需开通QQ推广功能,否则陌生人向他发送消息会失败)
NSString *QQ = @"1099779883";
//调用QQ客户端,发起QQ临时会话
NSString *url = [NSString stringWithFormat:@"mqq://im/chat?chat_type=wpa&uin=%@&version=1&src_type=web",QQ];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
注意事项:
- 1.由于开发文档中规定App的正常使用不能依赖其他App,所以在项目中集成此功能的童鞋要注意,在未安装QQ客户端时建议影藏此功能,不然上架有被拒风险.
- 2.我前期上架一个项目,便是这样处理的.
小结:
- 此项目代码我做了简单的封装:托管在github,有需要的童鞋可以下载: 代码地址:https://github.com/CoderZhuXH/XHChatQQ