在用ShareSDK 之前,自己用QQ官方文档做了QQ登录。后来选了ShareSdk
现在来说下在这我踩得坑以及一些步骤,http://sharesdk.mob.com/#/downloadDetail/ShareSDK/android 下载demo,然后复制粘贴。不出意料的大堆问题...
一,将AndroidManifest.xml里的 <activity android:name="com.mob.tools.MobUIShell"></activity>的东西都复制过来。
第一个坑,微信回调《《必须,必须一定》》得是你的项目包下的 .wxapi.WXEntryActivity 下,即使你正常注册了。你的微信回调页面没有在这个包下,能正常调起微信登录与授权页面,但是当你点击确认登录的时候不会报错,没有提示,但是没有返回数据。。。
二,各个平台申请账号,集成到assets --> ShareSDK.xml 微信登录需要签名,这在网上都能搜到,下载地址 微信平台开发应用的签名
第二个坑,新浪微博。我已经做好,后来因为IOS改动了新浪后台的默认回调链接,然后就一直报新浪微博授权失败,redirect_url与应用注册的网址不一致,这个地址能解决问题。
其实当准备完毕后,代码很简单。因为公司项目的原因,我贴出关键的代码,有问题的可以留言。
@Override
public void onClick(View v) {
super.onClick(v);
switch (v.getId()) {
case R.id.tvLoginWechat:
login(Wechat.NAME);
break;
case R.id.tvLoginQQ:
login(QQ.NAME);
break;
case R.id.tvLoginSina:
login(SinaWeibo.NAME);
break;
default:
break;
}
}
//return;
/*
* 演示执行第三方登录/注册的方法
* <p>
* 这不是一个完整的示例代码,需要根据您项目的业务需求,改写登录/注册回调函数
*
* @param platformName 执行登录/注册的平台名称,如:SinaWeibo.NAME
*/
private void login(String platformName) {
Platform plat = ShareSDK.getPlatform(platformName);
if (plat.isAuthValid()) {
plat.removeAccount(true);
//return TODO 这一步在官方Demo里是没有的,当用户已经授权后,直接return.不会调起授权页面,感觉体验不太好.
}LoginApi loginApi = new LoginApi();
//设置登陆的平台后执行登陆的方法
loginApi.setPlatform(platformName);