ShareUtil

Introduction: 简单的 Android 社会化分享登录库,一行代码搞定
More: Author   ReportBugs   
Tags:
Share-Login-

ShareUtil是一个综合性的分享及登录工具库,支持微信分享,微博分享,QQ 分享,QQ 空间分享以及 Android 系统默认分享,支持微信登录,微博登录以及 QQ 登录并获取用户信息。

Preview

share login

Feature

  1. 多种分享方式:

  2. 支持分享图片本地链接,网络链接或者 Bitmap, 不需要考虑各个平台的不一致性。

  3. 支持微信、QQ、微博登录并获取登录用户信息

Usage

添加依赖

免第三方 Jar 包配置

    compile 'me.shaohui.shareutil:shareutil:1.3.8'

手动添加第三方 jar

    compile 'me.shaohui.shareutil:shareutil:1.3.8.no_jar'

使用配置

  1. build.gradle 配置 在 defaultConfig 节点下增加你的 qq id 信息

     defaultConfig {
         ...
    
         manifestPlaceholders = [
                 //  替换成你的 qq_id
                 qq_id: "123456789"
         ]
    
     }
    
  2. 在使用之前设置在各个平台申请的 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);

使用说明

  1. QQ 不支持纯文字分享,会直接分享失败
  2. 使用 Jar 文件的版本如下:

     微信版本:3.1.1
     QQ 版本:3.1.0 lite 版
     微博版本: 3.1.4
    
  3. 分享的 bitmap,会在分享之后被回收掉,所以分享之后最好不要再对该 bitmap 做任何操作。
  4. example 中的代码可以参考,但是不可运行,因为需要保证包名以及签名文件和你申请各个平台 id 所填写信息保持一致
  5. ShareListener 的回调结果仅供参考,不可当做分享是否返回的依据,它并不是那么完全可靠,因为某些操作,例如微博分享取消,但是用户选择了保存草稿,这时候客户端并不会收到回调,所以也就不会调用 ShareListener 的 onCancel

ChangeLog

1.3.8

  • 修复在低端设备上,可能导致的 NullPointException 问题

1.3.7

  • 修复微信分享大图没反应 bug
  • 修复在 5.0 以下设备使用登录功能会意外收到登录取消回调

1.3.6

  • ShareUtil新增isInstalled方法,方便检查客户端是否安装

1.3.5

  • 修复 QQ 分享 media 类型错误
  • 完善 log
  • 开放 Application Context 调用
  • 增加检查外部存储
  • 重构部分代码

1.3.3

  • 增加 Debug 模式

1.3.2

  • 修复若干分享相关的 bug

1.3.1

  • 修复微博分享的 bug

1.3.0

  • 重构使用方式,minSdkVersion - > 9

1.2.8

  • 增加分享失败 Exception

1.2.7

  • 解决内存泄露的问题

TODO

  1. 微信内存泄露
  2. 图片加载失败,关闭 Activity

Thanks

License

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.
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools