一赋朦、概述
ShareLoginSdk是一個(gè)封裝了QQ篓冲、微信李破、微博登錄和分享功能的庫(kù),分享支持純文字壹将、
純圖片嗤攻、網(wǎng)頁(yè)(圖文)三種格式,可分享到微博诽俯、QQ好友屯曹、QQ空間、微信好友惊畏、朋友圈恶耽、微信收藏。
- 分享颜启、登錄時(shí)會(huì)自動(dòng)檢查是否安裝并給出提示偷俭;
- 由于QQ分享不支持分享純文本給好友,這一部分采用直接調(diào)用QQ的方式實(shí)現(xiàn)缰盏。
二涌萤、版本
已上傳jCenter,最新版本0.0.2口猜,直接在gradle中添加依賴(lài)即可负溪。
compile 'com.hengda.zwf:ShareLogin:0.0.2'
三、使用
封裝此庫(kù)的目的是為了在開(kāi)發(fā)第三方登錄和分享功能時(shí)济炎,盡可能的少一些拷貝和配置川抡。詳細(xì)使用參見(jiàn)Demo。
項(xiàng)目地址:https://git.oschina.net/tailyou/HD_Frame_ShareLogin须尚。
3.1 配置
配置非常簡(jiǎn)單崖堤,不需要拷貝jar文件,不需要修改AndroidManifest.xml.
添加對(duì)ShareLogin的依賴(lài)即可耐床。
compile 'com.hengda.zwf:ShareLogin:0.0.2'
修改項(xiàng)目的build.gradle密幔,增加 maven { url "https://dl.bintray.com/thelasterstar/maven/" }
buildscript {
repositories {
jcenter()
maven { url "https://dl.bintray.com/thelasterstar/maven/" }
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'com.novoda:bintray-release:0.3.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url "https://dl.bintray.com/thelasterstar/maven/" }
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
如果用到QQ平臺(tái),需要在app的defaultConfig中配置tencentAuthId撩轰,如下所示
defaultConfig {
applicationId "com.umeng.soexample"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [tencentAuthId: "tencent100424468"]
}
3.2 使用
3.2.1 初始化ShareLoginClient
胯甩,配置相應(yīng)平臺(tái)的AppId,AppSecret等堪嫂。
/**
* 初始化 ShareLoginClient
*
* @author 祝文飛(Tailyou)
* @time 2017/6/6 13:40
*/
private void initShareLoginClient() {
ShareLoginConfig slc = new ShareLoginConfig.Builder()
.debug(true)
.appName(getString(R.string.app_name))
.qq(Constants.QQ_APP_ID, Constants.QQ_SCOPE)
.weiXin(Constants.WECHAT_APP_ID, Constants.WECHAT_APP_SECRET)
.weiBo(Constants.SINA_APP_KEY, Constants.SINA_REDIRECT_URL, Constants.SINA_SCOPE)
.build();
ShareLoginClient.init(slc);
}
3.2.2 登錄偎箫,傳入登錄平臺(tái)和回調(diào)
微博
ShareLoginClient.login(mActivity, LoginPlatform.WEIBO, new LoginListener(mActivity, LoginPlatform.WEIBO));
微信
ShareLoginClient.login(mActivity, LoginPlatform.WEIXIN, new LoginListener(mActivity, LoginPlatform.WEIXIN));
ShareLoginClient.login(mActivity, LoginPlatform.QQ, new LoginListener(mActivity, LoginPlatform.QQ));
3.2.3 分享,根據(jù)分享類(lèi)型創(chuàng)建分享內(nèi)容溉苛。
1)純文本
mShareContent = new ShareContentText("我感覺(jué)這是個(gè)神奇的問(wèn)題镜廉,昨天項(xiàng)目還一切OK");
2)純圖片
mShareContent = new ShareContentPicture(mLargeBmpPath);
3)圖文(網(wǎng)頁(yè))
mShareContent = new ShareContentPage("這是標(biāo)題,好像不夠長(zhǎng)","我感覺(jué)這是個(gè)神奇的問(wèn)題愚战,昨天項(xiàng)目還一切OK",
"https://segmentfault.com/q/1010000009688458", mLargeBmpPath, mThumbBmpBytes);
3.2.4 分享娇唯,傳入分享平臺(tái)、分享內(nèi)容寂玲、回調(diào)
以微博為例塔插,其他分享平臺(tái)類(lèi)似。
ShareLoginClient.share(mActivity, SharePlatform.WEIBO_TIME_LINE, mShareContent, new ShareListener(mActivity));