目前几乎所有app都包含了第三方的登录以及分享功能,之前大多都使用ShareSDK或者其他SDK来实现,但是有些情况不希望通过第三方的sdk来间接集成,所以这个组件就有了用武之地。
这个组件在demo中是没有包含相关调用的代码的只有一些配置和使用的东西,因为应用的申请实在麻烦,但是已经在项目中测试通过了,所以可以放心使用。
优点
- 便捷实现第三方登录和分享及其回调
- 了解第三方登录或分享的实现流程
用法
包含了:如何引用、使用以及混淆
引用
1、在根目录的build.gradle中加入如下配置
1 | allprojects { |
2、在要是用的module中增加如下引用
1 | dependencies { |
注:如果在该module中使用了v7包,那么可使用exclude命令移除本库的引用避免重复,gson也是一样,大体方法如下
1 | compile ('com.github.arvinljw:SocialHelper:v1.0.7'){ |
使用
1、相应配置
AndroidManifest.xml配置
添加权限
1 | <!--微信权限,微博权限,qq只需前两个--> |
在application下添加Activity
1 | <!--qq配置开始--> |
注:其中需要注意的是,qq配置中
qqAppId换成您申请的qqAppId即可
微信还需要在packageName.wxapi的包下创建WXEntryActivity,具体实现可在这里查看
拷贝过去即可,注意路径,其中主要的处理是在其onResp的时候判断是登录还是分享做出相应的处理,通知本库触发回调
2、获取实例
首先采用外观模式,暴露出来一个SocialHelper,可以通过构建者模式获取实例,调用相关方法,配置回调。
1 | socialHelper = new SocialHelper.Builder() |
3、调用相关方法
这里提供了QQ、微信和微博的相应的登录和分享方法
- public void loginQQ(Activity activity, SocialLoginCallback callback)
- public void loginWX(Activity activity, SocialLoginCallback callback)
- public void loginWB(Activity activity, SocialLoginCallback callback)
- public void shareQQ(Activity activity, ShareEntity shareInfo, SocialShareCallback callback)
- public void shareWX(Activity activity, ShareEntity shareInfo, SocialShareCallback callback)
- public void shareWB(Activity activity, ShareEntity shareInfo, SocialShareCallback callback)
注:分享方法的参数顺序和老版本有一点变化,老版本的被遗弃了,计划下个版本删除
这个其实通过名字就能知道是什么意思,就不解释了,需要解释的是参数:
a、传入的Activity
主要是为了回调回来都在当前Activity中处理回调事情,避免在Fragment中去处理,这样也能减少一些工作
注:当然遇到在Fragment中调用登录或者分享的时候,请使用您最熟悉的方式回调到其Activity中处理相关操作
b、传入的回调
这里回调也分为了两种登录回调和分享回调
回调接口如下:
1 | public interface SocialCallback { |
登录和分享回调失败都会有一个信息返回;
登录成功会将封装的第三方信息返回,包含了常用的昵称,性别,头像,登录平台,更多信息也能在其中找到,详细的含义在Lib中有详细的注释;
分享成功就只有一个回调,便于提示。
c、ShareEntity
这个参数是分享的重点,对于QQ、微信和微博对应着QQShareEntity、WXShareEntity以及WBShareEntity
都可以通过其相应的静态方法创建相应分享类型
QQShareEntity
- createImageTextInfo 图文信息,网页信息
- createImageInfo 纯图片信息
- createMusicInfo 音乐信息
- createAppInfo 应用信息
- createImageTextInfoToQZone 图文信息到QQ空间
WXShareEntity
- createTextInfo 文本信息
- createImageInfo 纯图片信息
- createMusicInfo 音乐信息
- createVideoInfo 视频信息
- createWebPageInfo 网页信息
WBShareEntity
- createTextInfo 纯文本信息
- createImageTextInfo 图文信息
- createMultiImageInfo 多图信息
- createVideoInfo 视频信息
- createWebInfo 网页信息
具体详细的参数以及注释在相应类中都有明确的注释,这里就不过多的展开了;其中有ParamsRequired注解的参数代表必传。
注意,有些不必传的参数,不传虽然也能分享成功,但是有可能会影响分享出去的样式,请自行调试。
4、回调配置
在调用的Activity中配置
1 | //用处:qq登录和分享回调,以及微博登录回调 |
至于微信的回调配置,在一开始的时候说的WXEntryActivity的onResp中的处理就是了。
至此使用方式就基本完毕,算下来也就这么四部配置,就能愉快的使用了,当然前提是相应的app申请已经成功。
其中对于SocialHelper的实例,可以像Demo中一样使用一个工具简单封装成单例来使用。
Release Log
v1.0.7:
- 更新微信,qq,微博sdk版本
- 调整SocialHelper中shareXX相关方法的参数顺序,老的方法Deprecated了,下个版本移除
v1.0.5:
- 第一个稳定版本,包含微信,qq,微博登录和分享
混淆
1 |
|
注:微信的packageName换成自己的包名