微信号:cocoachinabbs

介绍:CocoaChina苹果开发中文社区官方微信,提供教程资源、app推广营销、招聘、外包及培训信息、各类沙龙交流活动以及更多开发者服务.

iOS调用QQ客户端发起临时会话

2018-01-10 09:04 Cocoa开发者社区

一.前言:


前段时间项目中有个需求,在App内调用QQ客户端,在不是好友前提下,向指定的客服QQ发起临时会话,很简单的一个需求,但是实际实现起来却碰到很多问题.


1.QQ开发者平台,并没有找到App调用QQ客户端发起临时会话方法,(只提供了网页端接入方法)


2.网上搜到的一些方法,大部分都粗秒淡写,要么可以调用QQ客户端,不能成功发送消息,要么是其他问题.


经过一段时间摸索,发现接入方法相当简单,现将接入方法分享给大家,希望有同样需求的同鞋,少走弯路.


二.效果:



三.需求:


  • App内调用QQ客户端,在不是好友前提下,向指定QQ号发起临时会话


四.接入方法:


1.用来接收临时消息QQ号(拿这个QQ号举例:1099779883)需开通QQ推广功能,未开通QQ推广功能,是不能接收陌生人消息的,开通方法如下:


  • 1.开通方式:打开QQ推广网址  http://shang.qq.com  并用接收临时消息QQ号(1099779883)登录

  • 2.点击顶部导航栏:推广工具,(如图):



  • 3.在弹出菜单中点击'立即免费开通'(如图:)即可



2.将QQ(mqq字段)添加到项目plist文件白名单中(iOS9新出要求),方法如下:


  • 1.在项目info.plist添加LSApplicationQueriesSchemes字段 类型Array

  • 2.在此Array中添加一个 item 值设为:mqq(如图)



3.直接上代码:

   

 //是否安装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,有需要的童鞋可以下载:

    代码地址:github.com/CoderZhuXH/…


作者:朱晓辉Allen

链接:https://juejin.im/post/5a31d8f76fb9a04528467f46


 
Cocoa开发者社区 更多文章 错过了淘宝、比特币,千万别错过小程序…… 一年一度的科技盛宴 CES2018热点前瞻 需要侧滑抽屉效果?一行代码足以! [译]Xcode 环境配置最佳实践 为了防止世界被破坏,春运的抢票攻略在等着你们
猜您喜欢 代码统计利器CLOC 一名技术心态成长的五段三境 福利时刻,不可多得Java开发进阶必学资源,免费发放啦!!! 一个无解的Bug 构建超级团队,这9种角色一个都不能少