android(微博 微信 qq) 分享和第三分认证登录的封装

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.微信平台问题纪录


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值