ShareUtil
是一个综合性的分享及登录工具库,支持微信分享,微博分享,QQ分享,QQ空间分享以及Android系统默认分享,支持微信登录,微博登录以及QQ登录并获取用户信息。
-
多种分享方式:
-
支持分享图片本地链接,网络链接或者Bitmap, 不需要考虑各个平台的不一致性。
-
支持微信、QQ、微博登录并获取登录用户信息
免第三方Jar包配置
compile 'me.shaohui.shareutil:shareutil:1.3.8'
手动添加第三方jar
compile 'me.shaohui.shareutil:shareutil:1.3.8.no_jar'
-
build.gradle 配置 在defaultConfig节点下增加你的qq id信息
defaultConfig { ... manifestPlaceholders = [ // 替换成你的qq_id qq_id: "123456789" ] }
-
在使用之前设置在各个平台申请的Id,以及分享的回调(推荐放在Application的onCreate方法中)
// init ShareConfig config = ShareConfig.instance() .qqId(QQ_ID) .wxId(WX_ID) .weiboId(WEIBO_ID) // 下面两个,如果不需要登录功能,可不填写 .weiboRedirectUrl(REDIRECT_URL) .wxSecret(WX_ID); ShareManager.init(config);
ShareUtil.shareImage(this, SharePlatform.QQ, "http://image.com", shareListener);
ShareUtil.shareText(this, SharePlatform.WX, "分享文字", shareListener);
ShareUtil.shareMedia(this, SharePlatform.QZONE, "title", "summary", "targetUrl", "thumb", shareListener);
// LoginPlatform.WEIBO 微博登录
// LoginPlatform.WX 微信登录
// LoginPlatform.QQ QQ登录
final LoginListener listener = new LoginListener() {
@Override
public void loginSuccess(LoginResult result) {
//登录成功, 如果你选择了获取用户信息,可以通过
}
@Override
public void loginFailure(Exception e) {
Log.i("TAG", "登录失败");
}
@Override
public void loginCancel() {
Log.i("TAG", "登录取消");
}
};
LoginUtil.login(MainActivity.this, LoginPlatform.WEIBO, mLoginListener, isFetchUserInfo);
-
QQ不支持纯文字分享,会直接分享失败
-
使用Jar文件的版本如下:
微信版本:3.1.1 QQ版本:3.1.0 lite版 微博版本: 3.1.4
-
分享的bitmap,会在分享之后被回收掉,所以分享之后最好不要再对该bitmap做任何操作。
-
example 中的代码可以参考,但是不可运行,因为需要保证包名以及签名文件和你申请各个平台id所填写信息保持一致
-
ShareListener的回调结果仅供参考,不可当做分享是否返回的依据,它并不是那么完全可靠,因为某些操作,例如微博分享取消,但是用户选择了保存草稿,这时候客户端并不会收到回调,所以也就不会调用ShareListener的onCancel
- 修复在低端设备上,可能导致的
NullPointException
问题
- 修复微信分享大图没反应bug
- 修复在5.0以下设备使用登录功能会意外收到登录取消回调
ShareUtil
新增isInstalled
方法,方便检查客户端是否安装
- 修复QQ分享media类型错误
- 完善log
- 开放Application Context调用
- 增加检查外部存储
- 重构部分代码
- 增加Debug模式
- 修复若干分享相关的bug
- 修复微博分享的bug
- 重构使用方式,minSdkVersion - > 9
- 增加分享失败Exception
- 解决内存泄露的问题
- 微信内存泄露
- 图片加载失败,关闭Activity
Copyright 2016 shaohui10086
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.