1.需求设计
项目之前使用第三方的sdk,出现了一下问题
1.第三方的sdk封装的分享和第三方登录不会很及时的和社交平台sdk同步。
2.第三方的sdk出了问题不会很及时的反馈和解决。
由于项目上层调用不想改变所以使用之前第三方上层接口不变的情况下重写底层的分享和第三方认证的实现,将最新的社交平台的sdk导入自己的module工程的lib包内。
第三方社交平台sdk下载地址
1.微信sdk下载地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN
2.qq sdk下载地址:http://wiki.open.qq.com/wiki/mobile/SDK下载
3.微博 sdk下载地址:https://github.com/sinaweibosdk/weibo_android_sdk 文档:http://open.weibo.com/wiki/移动应用SSO授权
使用道的功能:
1.第三方认证:获取到用户的用户名,access_token,openId等
2.第方法分享:分享到qq,qqzone,微信,微信朋友圈,微博,短信
2.功能分层
1.最上层调用
2.中间的平台跳转
3.底层实现登录认证和分享
4.工具类
5.不同平台的特点
3.代码实现
4.问题纪录
1.qq平台问题纪录
1.返回 onActivityResult(intrequestCode, int resultCode, Intent data) requestCode:11101,resultCode:0,data:null
原因:由于在一些低端的机器上由于内存的原因,无法返回到回调onComplete 里面,是以onActivityResult的方式返回的。并且要确保onActivityResult 中mTencent的方法会被回调。需要如下这样写:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { /** 使用SSO授权必须添加如下代码 */ if (mShare != null && data != null) { mShare.onShareActivityResult(this, requestCode, resultCode, data); } super.onActivityResult(requestCode, resultCode, data); }
2.微博平台问题纪录
1.微博在魅族 mx3手机上 onActivityResult(int requestCode, int resultCode, Intent data) intent为null的问题
原因:在有回调功能的activity不能设置activity的启动模式为 singleInstance.设置为singleTask就ok了
2.微信分享回调的activity的设置
在AndroidManifest.xml中的配置
在activity中的回调代码
3.微信平台问题纪录