腾讯开放平台提供了WPA接口,能够实现对于普通用户,无需加其好友就能和其发起临时会话(但是对于400开头的企业QQ号,如Mob平台的企业QQ:4006852216 ,必须先加其好友才能实现临时会话),官方文档如下:

http://wiki.open.qq.com/index.php?title=Android_API调用说明&=45038#2._WPA.E6.8E.A5.E5.8F.A3

对于使用Mob平台的ShareSDK的Android开发者,ShareSDK目前暂不支持腾讯开放平台的WPA接口功能,但是可以通过url中的scheme协议实现。

Android平台:

[java] view plaincopy
  1. String url="mqqwpa://im/chat?chat_type=wpa&uin=957269193";
  2. startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));

IOS平台:

[objc] view plaincopy
  1. UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
  2. NSURL *url = [NSURL URLWithString:@"mqq://im/chat?chat_type=wpa&uin=957269193&version=1&src_type=web"];
  3. NSURLRequest *request = [NSURLRequest requestWithURL:url];
  4. webView.delegate = self;
  5. [webView loadRequest:request];
  6. [self.view addSubview:webView];

JS浏览器:

[html] view plaincopy
  1. <a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=592333407&site=qq&menu=yes">click here</a>

注意事项

1. 如果使用当前版本的Android ShareSDK提供的API判断手机端是否安装了某社交平台客户端,必须在ShareSDK.xml文件的相应平台下配置enable属性为true,如微信:

[html] view plaincopy
  1. <Wechat
  2. Id="1"
  3. SortId="1"
  4. AppId="******"
  5. AppSecret="*******"
  6. BypassApproval="false"
  7. Enable="true" />

此时,ShareSDK默认分享界面中将会出现相应社交平台,如果不需要显示,可以在调用分享时使用如下代码屏蔽:

[java] view plaincopy
  1. OnekeyShare oks = new OnekeyShare();
  2. oks.addHiddenPlatform(QQ.NAME);

另外,在使用ShareSDK.getPlatform(QQ.NAME).isClientValid()判断手机端是否安装QQ时,容易出现问题,该api接口始终返回false,所以只能使用Android平台的packageManager来进行判断,Android版手机QQ的包名为:com.tencent.mobileqq,代码如下:

[java] view plaincopy
  1. /**
  2. * 判断手机设备是否安装指定包名的apk应用程序
  3. * @param context
  4. * @param packageName
  5. * @return
  6. */
  7. public static boolean isSpecialApplInstalled(Context context, String packageName) {
  8. PackageManager packageManager = context.getPackageManager();
  9. try {
  10. packageManager.getPackageInfo(packageName, 0);
  11. return true;
  12. } catch (NameNotFoundException e) {
  13. e.printStackTrace();
  14. }
  15. return false;
  16. }

2. 使用url的scheme方法调用QQ客户端并与指定QQ聊天功能时,目前发现两个因素会导致偶尔发送QQ消息失败并提示必须先添加好友:

第一,手机QQ版本问题:手机版本低了不行,目前最新版本是5.8.0.2505

第二,QQ号问题:企业QQ和个别个人QQ不行......

补充:以上两点也不是很准确,因为实际测试过程中发现,偶尔可以偶尔不可以,也许QQ的临时会话功能不太稳定......

拓展链接:

QQ推广官网:营销QQ的做法

手机端直接调用的JS:http://m.vcooline.com/91516/channel/1185266#mp.weixin.qq.com,如

[html] view plaincopy
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <div id="launch_qq">客服QQ</div>
  5. <script charset="utf-8" src="http://wpa.b.qq.com/cgi/wpa.php"></script>
  6. <script>
  7. BizQQWPA.addCustom({aty: '0', a: '0', nameAccount: 957269193, selector: 'launch_qq'});
  8. </script>
  9. </body>
  10. </html>

可以通过手机端直接调用JS。

参考一个库Rhino,使用案例如:【Android】不使用WebView来执行Javascript脚本(Rhino)

【腾讯开放平台】Android、IOS实现指定QQ临时会话功能相关推荐

  1. android app在腾讯开放平台认领应用给空白包签名

    http://www.zhimengzhe.com/Androidkaifa/5022.html 前言:之前公司app在腾讯开放平台认领应用时,涉及了一个问题:就是给空白包签名.然后再上传上去审核. ...

  2. 腾讯开放平台创建应用的坑,安卓和iOS端如何共用同一个Appid?

    很多人遇到一种情况,就是自己的应用使用QQ登录的时候,在不同客户端,返回的openid竟然不一样,导致统一个用户在不同客户端创建了不同的账号. 这时候有两种解决方法: 第一种:需要发邮件给腾讯开放平台 ...

  3. Android腾讯开放平台应用认领

    安卓应用腾讯平台认领发布 之前一个项目在做完多渠道打包完成之后向各大平台发布应用,360,小米都没问题,在腾讯开放平台上发布应用时提示应用已存在,当时整个人就懵逼了,后来无奈按照官方的提示进行应用认领 ...

  4. 解决Android下QtQuick.LocalStorage和腾讯开放平台组件冲突问题

    解决Android下QtQuick.LocalStorage和腾讯开放平台组件冲突问题 已经有将近一个月没有写博客了,其实这段时间还是非常努力地进行开发的活动.最近也是在开发的过程中遇到了好一些问题, ...

  5. 腾讯开放平台的应用认领,问题和命令操作记录(MacOS下,Win同理)

    腾讯开放平台的应用接入,可以接入应用宝.QQ物联等平台,为开发者提供发布和推广应用的渠道. 近日,笔者在腾讯开放平台上新增一个应用,出现已有相同应用存在的提示,并且平台提示进行应用认领,笔者在应用宝市 ...

  6. cordova项目打包并更新腾讯开放平台安装包、加固重新签名步骤

    打包apk 1.在webstorm中打开cordova项目,执行 cordova build android 这样会生成debug版的apk. 2.打包完成后会提示输出目录 一般是: /项目根目录/p ...

  7. qqp2011java_腾讯开放平台中实现QQ登陆的功能

    昨天为自己的网站实现了QQ登陆的功能,虽然,没有进行绑定,但是在技术层面上来说,已经了解了一点腾讯开放平台的协议. 具体什么是OAUTH,请您GG一下吧... 关于腾讯的开放平台,最主要的就是参数一定 ...

  8. 微信开放平台Android应用的签名

    微信开放平台Android应用签名的本质便是我们签名文件keystore的MD5值. keytool -list -v -keystore qj_test.keystore 获得: 别名: naoli ...

  9. 【二维码】新浪开放平台和腾讯开放平台试水

    尝试在新浪开放平台和腾讯开放平台修改应用.初步尝试了下,发现新浪的流程和步骤十分清晰,可是到腾讯,就傻眼了. 光平台,就有下面三个,尼玛,这不是坑爹嘛!新旧平台,新旧流程,新旧接口,在加上有空间,微博 ...

最新文章

  1. linux命令2--cd和pwd
  2. 音频数据建模全流程代码示例:通过讲话人的声音进行年龄预测
  3. 语音任务关键--噪声未必能听得到
  4. jQuery接收后台返回的数据
  5. Java集合篇:集合类介绍
  6. Hibernate性能提升
  7. 采购光纤收发器时应该注意哪些事项?
  8. python字符串只留数字_Python数字和字符串(5/30)
  9. WinEdt LaTex(三)—— 宏包
  10. mysql执行程序_Sql在Mysql的执行
  11. Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)
  12. python课程第三周小结_python周报第三周
  13. grep awk sed 练习题
  14. GB28181国标流媒体服务(LiveGBS)-支持海康8700等联网网关通过接入实现web端无插件直播
  15. 【QT】FillRect填充的区域实现部分区域透明
  16. VNCTF2021 几个题解writeup
  17. 磁盘的扩展卷和压缩卷显示灰色,无法使用
  18. 如何在Win10不同设备之间同步便签
  19. 逻辑回归和决策树_结合逻辑回归和决策树
  20. 深信服“监控员工跳槽倾向”引争议,律师称未告知员工涉嫌违法

热门文章

  1. SpringBoot 接口层统一加密解密
  2. 学习日志0820类的继承
  3. 大学生个人网页模板 简单网页制作作业成品 (响应式明星防弹少年团7页)
  4. Python开多次方根
  5. 2014 年终总结:即使艰难,也要始终怀揣梦想
  6. android xmlpullparser 编译出错,将Android支持库更新为23.2.0导致错误:XmlPullParserException...
  7. mmdetection 环境配置与简单测试(mmrotate同理)
  8. 链路聚合-LACP模式
  9. java毕业设计医生在线诊所平台Mybatis+系统+数据库+调试部署
  10. threejs-绘制剖切面