From 32d42fb60c127c1cfbbc37717012097a5458331b Mon Sep 17 00:00:00 2001 From: liujinwei Date: Thu, 28 Jun 2018 15:06:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0SocialHelper=E7=9A=84?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit appId不匹配,调用会失败,需要在自己的app中按需使用。 --- README.md | 10 +- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 2 +- .../sample/TestLoginShareActivity.java | 185 ++++++++++++++++++ .../res/layout/activity_test_login_share.xml | 153 +++++++++++++++ app/src/main/res/mipmap-xxhdpi/img_qq_p.png | Bin 0 -> 4484 bytes app/src/main/res/mipmap-xxhdpi/img_wb_p.png | Bin 0 -> 5318 bytes app/src/main/res/mipmap-xxhdpi/img_wx_p.png | Bin 0 -> 4966 bytes app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/dimens.xml | 4 + app/src/main/res/values/styles.xml | 4 + 11 files changed, 357 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/net/arvin/socialhelper/sample/TestLoginShareActivity.java create mode 100644 app/src/main/res/layout/activity_test_login_share.xml create mode 100644 app/src/main/res/mipmap-xxhdpi/img_qq_p.png create mode 100644 app/src/main/res/mipmap-xxhdpi/img_wb_p.png create mode 100644 app/src/main/res/mipmap-xxhdpi/img_wx_p.png create mode 100644 app/src/main/res/values/dimens.xml diff --git a/README.md b/README.md index 042e093..1b7469f 100644 --- a/README.md +++ b/README.md @@ -32,14 +32,14 @@ allprojects { ``` dependencies { ... - compile 'com.github.arvinljw:SocialHelper:v1.0.7' + compile 'com.github.arvinljw:SocialHelper:v1.0.8' } ``` *注:如果在该module中使用了v7包,那么可使用exclude命令移除本库的引用避免重复,gson也是一样,大体方法如下* ``` -compile ('com.github.arvinljw:SocialHelper:v1.0.7'){ +compile ('com.github.arvinljw:SocialHelper:v1.0.8'){ exclude group: 'com.android.support' } ``` @@ -226,6 +226,12 @@ protected void onNewIntent(Intent intent) { ### Release Log +**v1.0.8:** + +* 优化appId等参数为空是不抛异常,只打印日志,避免使用奔溃 +* 删除SocialHelper中上个版本Deprecate了的方法 +* 增加使用SocialHelper的[使用例子](https://github.com/arvinljw/SocialHelper/blob/master/app/src/main/java/net/arvin/socialhelper/sample/TestLoginShareActivity.java),但是无法直接使用,因为各种appId不匹配,需要在自己的app中按需使用。 + **v1.0.7:** * 更新微信,qq,微博sdk版本 diff --git a/app/build.gradle b/app/build.gradle index a2bc4e8..33e1802 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,6 +20,7 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) api 'com.android.support:appcompat-v7:'.concat(projectSupportVersion) + implementation 'com.android.support.constraint:constraint-layout:1.1.2' // compile project(':socialhelper') api ('com.github.arvinljw:SocialHelper:v1.0.7'){ exclude group: 'com.android.support' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7774f8e..e821738 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,7 +15,7 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - + diff --git a/app/src/main/java/net/arvin/socialhelper/sample/TestLoginShareActivity.java b/app/src/main/java/net/arvin/socialhelper/sample/TestLoginShareActivity.java new file mode 100644 index 0000000..662d68b --- /dev/null +++ b/app/src/main/java/net/arvin/socialhelper/sample/TestLoginShareActivity.java @@ -0,0 +1,185 @@ +package net.arvin.socialhelper.sample; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.RadioGroup; +import android.widget.TextView; +import android.widget.Toast; + +import net.arvin.socialhelper.SocialHelper; +import net.arvin.socialhelper.callback.SocialLoginCallback; +import net.arvin.socialhelper.callback.SocialShareCallback; +import net.arvin.socialhelper.entities.QQShareEntity; +import net.arvin.socialhelper.entities.ShareEntity; +import net.arvin.socialhelper.entities.ThirdInfoEntity; +import net.arvin.socialhelper.entities.WBShareEntity; +import net.arvin.socialhelper.entities.WXShareEntity; +import net.arvin.socialhelper.sample.utils.SocialUtil; + +import java.util.ArrayList; + +public class TestLoginShareActivity extends AppCompatActivity implements View.OnClickListener, SocialLoginCallback, SocialShareCallback { + private String imgUrl = "https://upload-images.jianshu.io/upload_images/3157525-afe6f0ba902eb523.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"; + private String localImgUrl = "/storage/emulated/0/DCIM/Camera/IMG_20180422_113944.jpg"; + private String title = "个人博客"; + private String summary = "好好学习"; + private String targetUrl = "https://arvinljw.github.io"; + + private SocialHelper socialHelper; + + private TextView tvLoginInfo; + private RadioGroup rgShareInfo; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_test_login_share); + setTitle("测试SocialHelper"); + socialHelper = SocialUtil.getInstance().socialHelper(); + initView(); + initEvent(); + } + + private void initView() { + tvLoginInfo = findViewById(R.id.tv_login_info); + rgShareInfo = findViewById(R.id.rg_share_info); + } + + private void initEvent() { + findViewById(R.id.img_qq).setOnClickListener(this); + findViewById(R.id.img_wx).setOnClickListener(this); + findViewById(R.id.img_wb).setOnClickListener(this); + findViewById(R.id.img_qq_share).setOnClickListener(this); + findViewById(R.id.img_wx_share).setOnClickListener(this); + findViewById(R.id.img_wb_share).setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.img_qq: + socialHelper.loginQQ(this, this); + break; + case R.id.img_wx: + socialHelper.loginWX(this, this); + break; + case R.id.img_wb: + socialHelper.loginWB(this, this); + break; + case R.id.img_qq_share: + socialHelper.shareQQ(this, createQQShareEntity(), this); + break; + case R.id.img_wx_share: + socialHelper.shareWX(this, createWXShareEntity(), this); + break; + case R.id.img_wb_share: + socialHelper.shareWB(this, createWBShareEntity(), this); + break; + } + } + + private ShareEntity createQQShareEntity() { + ShareEntity shareEntity = null; + int checkedRadioButtonId = rgShareInfo.getCheckedRadioButtonId(); + switch (checkedRadioButtonId) { + case R.id.rb_img: + shareEntity = QQShareEntity.createImageInfo(localImgUrl, "ni6"); + break; + case R.id.rb_img_text: + shareEntity = QQShareEntity.createImageTextInfo(title, targetUrl, + imgUrl, summary, "ni6"); + break; + case R.id.rb_web: + //分享到qq空间,因为qq图文就包含了targetUrl所以比较常用 + ArrayList imgUrls = new ArrayList<>(); + imgUrls.add(imgUrl); + shareEntity = QQShareEntity.createImageTextInfoToQZone(title, targetUrl, + imgUrls, summary, "ni6"); + break; + } + return shareEntity; + } + + private ShareEntity createWXShareEntity() { + ShareEntity shareEntity = null; + int checkedRadioButtonId = rgShareInfo.getCheckedRadioButtonId(); + switch (checkedRadioButtonId) { + case R.id.rb_img: + shareEntity = WXShareEntity.createImageInfo(false, localImgUrl); + break; + case R.id.rb_img_text: + //微信图文是分开的,但是在分享到朋友圈的web中是可以有混合的 + shareEntity = WXShareEntity.createImageInfo(false, R.mipmap.ic_launcher); + break; + case R.id.rb_web: + shareEntity = WXShareEntity.createWebPageInfo(false, targetUrl, R.mipmap.ic_launcher, + title, summary); + break; + } + return shareEntity; + } + + private ShareEntity createWBShareEntity() { + ShareEntity shareEntity = null; + int checkedRadioButtonId = rgShareInfo.getCheckedRadioButtonId(); + switch (checkedRadioButtonId) { + case R.id.rb_img: + shareEntity = WBShareEntity.createImageTextInfo(localImgUrl, title); + break; + case R.id.rb_img_text: + shareEntity = WBShareEntity.createImageTextInfo(R.mipmap.ic_launcher, title); + break; + case R.id.rb_web: + shareEntity = WBShareEntity.createWebInfo(targetUrl, + title, summary, R.mipmap.ic_launcher, "这是要说的内容"); + break; + } + return shareEntity; + } + + //用处:qq登录和分享回调,以及微博登录回调 + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (data != null && socialHelper != null) {//qq分享如果选择留在qq,通过home键退出,再进入app则不会有回调 + socialHelper.onActivityResult(requestCode, resultCode, data); + } + } + + //用处:微博分享回调 + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + if (socialHelper != null) { + socialHelper.onNewIntent(intent); + } + } + + @Override + public void loginSuccess(ThirdInfoEntity info) { + tvLoginInfo.setText(toString(info)); + } + + @Override + public void socialError(String msg) { + Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + } + + @Override + public void shareSuccess() { + Toast.makeText(this, "分享成功", Toast.LENGTH_SHORT).show(); + } + + private String toString(ThirdInfoEntity info) { + return "登录信息 = {" + + "unionId='" + info.getUnionId() + '\'' + + ", openId='" + info.getOpenId() + '\'' + + ", nickname='" + info.getNickname() + '\'' + + ", sex='" + info.getSex() + '\'' + + ", avatar='" + info.getAvatar() + '\'' + + ", platform='" + info.getPlatform() + '\'' + + '}'; + } +} diff --git a/app/src/main/res/layout/activity_test_login_share.xml b/app/src/main/res/layout/activity_test_login_share.xml new file mode 100644 index 0000000..784f820 --- /dev/null +++ b/app/src/main/res/layout/activity_test_login_share.xml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/img_qq_p.png b/app/src/main/res/mipmap-xxhdpi/img_qq_p.png new file mode 100644 index 0000000000000000000000000000000000000000..66580a3bd3b4d4cbc3eab7d2103d33d236086087 GIT binary patch literal 4484 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/img_wx_p.png b/app/src/main/res/mipmap-xxhdpi/img_wx_p.png new file mode 100644 index 0000000000000000000000000000000000000000..614c179240637f0268fbf9cf59fa2a7a7dfa150e GIT binary patch literal 4966 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 3ab3e9c..2008ed1 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,4 +3,5 @@ #3F51B5 #303F9F #FF4081 + #000 diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..afbed9b --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,4 @@ + + + 16sp + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 5885930..2d9b8cb 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -8,4 +8,8 @@ @color/colorAccent +