刚开始想要实现这个功能的时候,一直以为会很难,很麻烦。但当接触了才发现,原来这个东西已经被封装得变得相当容易了,你的调用只需要那么几句代码就可搞定了。这里,我就不加多的赘述了。只说说我demo 中使用的方式,亲测都是没问题的。无论是 QQ 、微信,微博都有试过登录,并获取得到相应的昵称,头像的了。
首先就是导入一个sharesdk的工程库。其次是到自己的项目里面添加ShareSDK.xml 这个文件 。这个文件主要是配置你在QQ,微信,微博等平台上注册应用所获取的appid 与 appSecret。其中,微信登录的话需要认证开发者资后才能调用登录接口。
至此,就可以写登录的代码了,登录代码也是很简单的。几行的调用就搞定了。
//第三方微信登录
if (!isInstalled(mContext,WEIXIN_PACKAGE)){
showToast(mContext,"请先安装微信");
return;
}
showToast(mContext,"打开微信");
Platform wechat = ShareSDK.getPlatform(Wechat.NAME);
doLoginFormPlatform(wechat,false);
如果是关闭sso授权的话,那么就算是你手机上有安装qq,微博这些应用的客户端,都会是打开网页的登录授权。这样导致的后果就是你需要重复多次去输入帐号密码。因此,在这里我就先去判断是否有安装相对应的客户端了。来决定是通过哪种方式去授权。(微信的登录只能通过sso授权的)
/**
* 登录方式
* @param plat 登录平台
* @param isCloseSSO 是否关闭SSO授权
*/
private void doLoginFormPlatform(Platform plat,boolean isCloseSSO){
if (plat == null){
return;
}
plat.removeAccount(true);
plat.setPlatformActionListener(platformActionListener);//登录授权的监听事件
plat.SSOSetting(isCloseSSO);
plat.showUser(null);
}
工程代码
http://download.csdn.net/detail/u013318697/9571497