diff --git a/README.md b/README.md
index 6fabe54..1ffc04d 100644
--- a/README.md
+++ b/README.md
@@ -32,17 +32,13 @@ allprojects {
```
dependencies {
...
- compile 'com.github.arvinljw:SocialHelper:v1.0.9'
+ implementation 'com.android.support:appcompat-v7:28.0.0'
+ implementation 'com.google.code.gson:gson:2.8.2'
+ implementation 'com.github.arvinljw:SocialHelper:v1.1.0'
}
```
-*注:如果在该module中使用了v7包,那么可使用exclude命令移除本库的引用避免重复,gson也是一样,大体方法如下*
-
-```
-compile ('com.github.arvinljw:SocialHelper:v1.0.9'){
- exclude group: 'com.android.support'
-}
-```
+*注:如果在该module中只引用了这三个第三方的包
#### 使用
@@ -95,9 +91,21 @@ AndroidManifest.xml配置
*注:其中需要注意的是,qq配置中
qqAppId换成您申请的qqAppId即可*
-微信还需要在packageName.wxapi的包下创建WXEntryActivity,具体实现可在[这里查看](app/src/main/java/net/arvin/socialhelper/sample/wxapi/WXEntryActivity.java)
+微信还需要在packageName.wxapi的包下创建WXEntryActivity,该Activity可继承**WxHelperActivity**,并传入SocialHelper的实例
+
+```
+public class WXEntryActivity extends WXHelperActivity {
+
+ @Override
+ protected SocialHelper getSocialHelper() {
+ return SocialUtil.INSTANCE.socialHelper;
+ }
+}
+```
+
+具体实现可在[这里查看](app/src/main/java/net/arvin/socialhelper/sample/wxapi/WXEntryActivity.java)
-拷贝过去即可,注意路径,其中主要的处理是在其onResp的时候判断是登录还是分享做出相应的处理,通知本库触发回调
+WxHelperActivity主要处理的是在其onResp的时候判断是登录还是分享做出相应的处理,通知本库触发回调。
**2、获取实例**
@@ -110,9 +118,14 @@ socialHelper = new SocialHelper.Builder()
.setWxAppSecret("wxAppSecret")
.setWbAppId("wbAppKey")
.setWbRedirectUrl("wbRedirectUrl")
+ .setNeedLoginResult(true)
.build();
```
+其中setNeedLoginResult表示是否带有第三方登陆后的AccessToken等信息,默认是false。
+
+**返回的AccessToken等信息分别在ThirdInfoEntity里的qqInfo,wxInfo,wbInfo中的loginResultEntity中。**
+
**3、调用相关方法**
这里提供了QQ、微信和微博的相应的登录和分享方法
@@ -160,7 +173,6 @@ public interface SocialShareCallback extends SocialCallback{
分享成功就只有一个回调,便于提示。
-
**c、ShareEntity**
这个参数是分享的重点,对于QQ、微信和微博对应着QQShareEntity、WXShareEntity以及WBShareEntity
@@ -240,6 +252,14 @@ protected void onDestroy() {
### Release Log
+**v1.1.0:**
+
+* 增加第三方登陆返回的accessToken等信息
+* 封装微信登陆和分享回调类WxHelperActivity
+* 将微信的广播注册方式换成本地广播
+* 将v7和gson包只是编译,需要自己引入,避免重复使用
+* 调整相关包版本以及编译版本等
+
**v1.0.9:**
* 分享回调增加分享类型
@@ -295,11 +315,6 @@ protected void onDestroy() {
若是有什么好的建议或者问题,请多多指教,感激不尽。
-待做事项
-
-* 参数解释以及对应样式的整理
-* 完善demo的代码
-
### License
```
diff --git a/app/build.gradle b/app/build.gradle
index a86711f..05908f6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -18,11 +18,9 @@ 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'
- api project(':socialhelper')
-// api ('com.github.arvinljw:SocialHelper:v1.0.9'){
-// exclude group: 'com.android.support'
-// }
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+ implementation 'com.android.support:appcompat-v7:'.concat(projectSupportVersion)
+ implementation 'com.google.code.gson:gson:2.8.2'
+ implementation project(':socialhelper')
}
diff --git a/app/src/main/java/net/arvin/socialhelper/sample/wxapi/WXEntryActivity.java b/app/src/main/java/net/arvin/socialhelper/sample/wxapi/WXEntryActivity.java
index 080d1b8..fc23289 100644
--- a/app/src/main/java/net/arvin/socialhelper/sample/wxapi/WXEntryActivity.java
+++ b/app/src/main/java/net/arvin/socialhelper/sample/wxapi/WXEntryActivity.java
@@ -1,18 +1,7 @@
package net.arvin.socialhelper.sample.wxapi;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.util.Log;
-
-import com.tencent.mm.opensdk.constants.ConstantsAPI;
-import com.tencent.mm.opensdk.modelbase.BaseReq;
-import com.tencent.mm.opensdk.modelbase.BaseResp;
-import com.tencent.mm.opensdk.modelmsg.SendAuth;
-import com.tencent.mm.opensdk.openapi.IWXAPI;
-import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
-import com.tencent.mm.opensdk.openapi.WXAPIFactory;
-
+import net.arvin.socialhelper.SocialHelper;
+import net.arvin.socialhelper.WXHelperActivity;
import net.arvin.socialhelper.sample.utils.SocialUtil;
/**
@@ -20,49 +9,10 @@
* Function:
* Desc:
*/
-public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
- private IWXAPI api;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- String wxAppId = SocialUtil.INSTANCE.socialHelper.getBuilder().getWxAppId();
- api = WXAPIFactory.createWXAPI(this, wxAppId, true);
- api.registerApp(wxAppId);
-
- api.handleIntent(getIntent(), this);
- }
-
- @Override
- protected void onNewIntent(Intent intent) {
- super.onNewIntent(intent);
- setIntent(intent);
- api.handleIntent(intent, this);
- }
-
- @Override
- public void onReq(BaseReq baseReq) {
- }
+public class WXEntryActivity extends WXHelperActivity {
@Override
- public void onResp(BaseResp baseResp) {
- //登录
- Log.d("WXEntryActivity", baseResp.errCode + baseResp.errStr);
- if (baseResp.getType() == ConstantsAPI.COMMAND_SENDAUTH) {
- if (baseResp.errCode == BaseResp.ErrCode.ERR_OK) {
- String code = ((SendAuth.Resp) baseResp).code;
- SocialUtil.INSTANCE.socialHelper.sendAuthBackBroadcast(this, code);
- } else {
- SocialUtil.INSTANCE.socialHelper.sendAuthBackBroadcast(this, null);
- }
- } else if (baseResp.getType() == ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX) {
- if (baseResp.errCode == BaseResp.ErrCode.ERR_OK) {
- SocialUtil.INSTANCE.socialHelper.sendShareBackBroadcast(this, true);
- } else {
- SocialUtil.INSTANCE.socialHelper.sendShareBackBroadcast(this, false);
- }
- }
- onBackPressed();
+ protected SocialHelper getSocialHelper() {
+ return SocialUtil.INSTANCE.socialHelper;
}
}
diff --git a/build.gradle b/build.gradle
index 8535dda..ac5dfb7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.3'
+ classpath 'com.android.tools.build:gradle:3.2.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
// NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle.properties b/gradle.properties
index 76fdd31..f1fa540 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -18,9 +18,9 @@ org.gradle.jvmargs=-Xmx1536m
projectApplicationId = net.arvin.socialhelper.sample
-projectCompileSdkVersion = 27
+projectCompileSdkVersion = 28
projectMinSdkVersion = 14
-projectTargetSdkVersion = 27
+projectTargetSdkVersion = 28
-projectSupportVersion = 27.1.1
+projectSupportVersion = 28.0.0
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5797989..c3cc63b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Wed May 09 20:18:08 CST 2018
+#Thu Sep 27 14:54:57 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
diff --git a/socialhelper/build.gradle b/socialhelper/build.gradle
index b35ef9e..d57c7bd 100644
--- a/socialhelper/build.gradle
+++ b/socialhelper/build.gradle
@@ -41,8 +41,8 @@ android {
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
- api 'com.android.support:appcompat-v7:'.concat(projectSupportVersion)
+ compileOnly 'com.android.support:appcompat-v7:'.concat(projectSupportVersion)
api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.1.4'
api 'com.sina.weibo.sdk:core:4.2.7:openDefaultRelease@aar'
- api 'com.google.code.gson:gson:2.8.2'
+ compileOnly 'com.google.code.gson:gson:2.8.2'
}
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/INeedLoginResult.java b/socialhelper/src/main/java/net/arvin/socialhelper/INeedLoginResult.java
new file mode 100644
index 0000000..1155939
--- /dev/null
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/INeedLoginResult.java
@@ -0,0 +1,12 @@
+package net.arvin.socialhelper;
+
+/**
+ * Created by arvinljw on 2018/9/27 15:26
+ * Function:
+ * Desc:
+ */
+public interface INeedLoginResult {
+ void setNeedLoginResult(boolean needLoginResult);
+
+ boolean isNeedLoginResult();
+}
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/QQHelper.java b/socialhelper/src/main/java/net/arvin/socialhelper/QQHelper.java
index 8ab1be2..ffc18f3 100644
--- a/socialhelper/src/main/java/net/arvin/socialhelper/QQHelper.java
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/QQHelper.java
@@ -25,7 +25,7 @@
* Function:
* Desc:
*/
-final class QQHelper implements ISocial {
+final class QQHelper implements ISocial, INeedLoginResult {
private Activity activity;
private Tencent tencent;
private String appId;
@@ -33,8 +33,11 @@ final class QQHelper implements ISocial {
private SocialLoginCallback loginCallback;
private IUiListener loginListener;
private QQLoginResultEntity loginResult;
+ private IUiListener userInfoListener;
private QQInfoEntity qqInfo;
+ private boolean needLoginResult;
+
private SocialShareCallback shareCallback;
private IUiListener shareListener;
@@ -115,24 +118,31 @@ private void getUserInfo() {
return;
}
+ initUserInfoListener();
+
UserInfo info = new UserInfo(activity, tencent.getQQToken());
info.getUserInfo(userInfoListener);
}
- private IUiListener userInfoListener = new NormalUIListener(activity, loginCallback) {
- @Override
- public void onComplete(Object o) {
- try {
- qqInfo = new Gson().fromJson(o.toString(), QQInfoEntity.class);
- if (loginCallback != null) {
- loginCallback.loginSuccess(createThirdInfo());
+ private void initUserInfoListener() {
+ userInfoListener = new NormalUIListener(activity, loginCallback) {
+ @Override
+ public void onComplete(Object o) {
+ try {
+ qqInfo = new Gson().fromJson(o.toString(), QQInfoEntity.class);
+ if (isNeedLoginResult()) {
+ qqInfo.setLoginResultEntity(loginResult);
+ }
+ if (loginCallback != null) {
+ loginCallback.loginSuccess(createThirdInfo());
+ }
+ tencent.logout(activity);
+ } catch (Exception e) {
+ e.printStackTrace();
}
- tencent.logout(activity);
- } catch (Exception e) {
- e.printStackTrace();
}
- }
- };
+ };
+ }
@Override
public ThirdInfoEntity createThirdInfo() {
@@ -140,6 +150,16 @@ public ThirdInfoEntity createThirdInfo() {
SocialUtil.getQQSex(qqInfo.getGender()), qqInfo.getFigureurl_qq_2(), qqInfo);
}
+ @Override
+ public void setNeedLoginResult(boolean needLoginResult) {
+ this.needLoginResult = needLoginResult;
+ }
+
+ @Override
+ public boolean isNeedLoginResult() {
+ return needLoginResult;
+ }
+
/**
* qq有个坑,采用onActivityResult的方式,如果留在qq的话,home键退出之后无法正确回调
*/
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/SocialHelper.java b/socialhelper/src/main/java/net/arvin/socialhelper/SocialHelper.java
index 8dcb605..eb36d26 100644
--- a/socialhelper/src/main/java/net/arvin/socialhelper/SocialHelper.java
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/SocialHelper.java
@@ -3,6 +3,7 @@
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.support.v4.content.LocalBroadcastManager;
import android.text.TextUtils;
import net.arvin.socialhelper.callback.SocialLoginCallback;
@@ -38,18 +39,21 @@ public Builder getBuilder() {
public void loginQQ(Activity activity, SocialLoginCallback callback) {
clear();
qqHelper = new QQHelper(activity, builder.getQqAppId());
+ qqHelper.setNeedLoginResult(builder.isNeedLoinResult());
qqHelper.login(callback);
}
public void loginWX(Activity activity, SocialLoginCallback callback) {
clear();
wxHelper = new WXHelper(activity, builder.getWxAppId(), builder.getWxAppSecret());
+ wxHelper.setNeedLoginResult(builder.isNeedLoinResult());
wxHelper.login(callback);
}
public void loginWB(Activity activity, SocialLoginCallback callback) {
clear();
wbHelper = new WBHelper(activity, builder.getWbAppId(), builder.getWbRedirectUrl());
+ wbHelper.setNeedLoginResult(builder.isNeedLoinResult());
wbHelper.login(callback);
}
@@ -103,7 +107,7 @@ public void sendAuthBackBroadcast(Context context, String code) {
code = KEY_WX_AUTH_CANCEL_CODE;
}
intent.putExtra(KEY_WX_AUTH_CODE, code);
- context.sendBroadcast(intent);
+ LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
/**
@@ -114,18 +118,18 @@ public void sendAuthBackBroadcast(Context context, String code) {
public void sendShareBackBroadcast(Context context, boolean success) {
Intent intent = new Intent(WX_SHARE_RECEIVER_ACTION);
intent.putExtra(KEY_WX_SHARE_CALL_BACK, success);
- context.sendBroadcast(intent);
+ LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
public void clear() {
- if (qqHelper != null) {
- qqHelper.onDestroy();
- qqHelper = null;
- }
if (wxHelper != null) {
wxHelper.onDestroy();
wxHelper = null;
}
+ if (qqHelper != null) {
+ qqHelper.onDestroy();
+ qqHelper = null;
+ }
if (wbHelper != null) {
wbHelper.onDestroy();
wbHelper = null;
@@ -141,6 +145,8 @@ public static final class Builder {
private String wbAppId;
private String wbRedirectUrl;
+ private boolean needLoinResult;
+
public String getQqAppId() {
return qqAppId;
}
@@ -186,6 +192,15 @@ public Builder setWbRedirectUrl(String wbRedirectUrl) {
return this;
}
+ public Builder setNeedLoinResult(boolean needLoinResult) {
+ this.needLoinResult = needLoinResult;
+ return this;
+ }
+
+ public boolean isNeedLoinResult() {
+ return needLoinResult;
+ }
+
public SocialHelper build() {
return new SocialHelper(this);
}
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/WBHelper.java b/socialhelper/src/main/java/net/arvin/socialhelper/WBHelper.java
index 8a58ace..59ea405 100644
--- a/socialhelper/src/main/java/net/arvin/socialhelper/WBHelper.java
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/WBHelper.java
@@ -48,7 +48,7 @@
* Function:
* Desc:
*/
-final class WBHelper implements ISocial {
+final class WBHelper implements ISocial, INeedLoginResult {
private static final int GET_INFO_ERROR = 10002;
private static final int GET_INFO_SUCCESS = 10003;
private static final String SCOPE = "email";
@@ -59,8 +59,10 @@ final class WBHelper implements ISocial {
private SsoHandler mSsoHandler;
private SocialLoginCallback loginCallback;
+ private Oauth2AccessToken loginResult;
private WbAuthListener wbAuthCallback;
private WBInfoEntity wbInfo;
+ private boolean needLoginResult;
private WbShareHandler shareHandler;
private SocialShareCallback shareCallback;
@@ -116,6 +118,7 @@ private void initLoginListener() {
@Override
public void onSuccess(Oauth2AccessToken oauth2AccessToken) {
if (oauth2AccessToken.isSessionValid()) {
+ loginResult = oauth2AccessToken;
AccessTokenKeeper.writeAccessToken(activity, oauth2AccessToken);
getUserInfo(oauth2AccessToken);
} else {
@@ -153,6 +156,9 @@ public void run() {
}
URL url = new URL("https://api.weibo.com/2/users/show.json?access_token=" + accessToken.getToken() + "&uid=" + accessToken.getUid() + "");
wbInfo = new Gson().fromJson(SocialUtil.get(url), WBInfoEntity.class);
+ if (isNeedLoginResult()) {
+ wbInfo.setLoginResultEntity(loginResult);
+ }
handler.sendEmptyMessage(GET_INFO_SUCCESS);
} catch (Exception e) {
e.printStackTrace();
@@ -397,4 +403,14 @@ public void onDestroy() {
activity = null;
}
}
+
+ @Override
+ public void setNeedLoginResult(boolean needLoginResult) {
+ this.needLoginResult = needLoginResult;
+ }
+
+ @Override
+ public boolean isNeedLoginResult() {
+ return needLoginResult;
+ }
}
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/WXHelper.java b/socialhelper/src/main/java/net/arvin/socialhelper/WXHelper.java
index bf37369..a2d12a0 100644
--- a/socialhelper/src/main/java/net/arvin/socialhelper/WXHelper.java
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/WXHelper.java
@@ -11,6 +11,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.support.v4.content.LocalBroadcastManager;
import android.text.TextUtils;
import android.util.Log;
@@ -43,7 +44,7 @@
* Function:
* Desc:
*/
-final class WXHelper implements ISocial {
+final class WXHelper implements ISocial, INeedLoginResult {
private static final int GET_INFO_ERROR = 10000;
private static final int GET_INFO_SUCCESS = 10001;
@@ -55,6 +56,7 @@ final class WXHelper implements ISocial {
private SocialLoginCallback loginCallback;
private BroadcastReceiver wxAuthReceiver;
private WXInfoEntity wxInfo;
+ private boolean needLoginResult;
private SocialShareCallback shareCallback;
private BroadcastReceiver wxShareReceiver;
@@ -108,7 +110,7 @@ public void onReceive(Context activity, Intent intent) {
getAccessToken(code);
}
};
- activity.registerReceiver(wxAuthReceiver, new IntentFilter(SocialHelper.WX_AUTH_RECEIVER_ACTION));
+ LocalBroadcastManager.getInstance(activity).registerReceiver(wxAuthReceiver, new IntentFilter(SocialHelper.WX_AUTH_RECEIVER_ACTION));
}
}
@@ -145,6 +147,9 @@ private void getUserInfo(final WXLoginResultEntity wxLoginResult) throws Excepti
URL url = new URL("https://api.weixin.qq.com/sns/userinfo?access_token=" + wxLoginResult.getAccess_token() +
"&openid=" + wxLoginResult.getOpenid() + "");
wxInfo = new Gson().fromJson(SocialUtil.get(url), WXInfoEntity.class);
+ if (isNeedLoginResult()) {
+ wxInfo.setLoginResultEntity(wxLoginResult);
+ }
handler.sendEmptyMessage(GET_INFO_SUCCESS);
}
@@ -220,7 +225,8 @@ public void onReceive(Context activity, Intent intent) {
}
}
};
- activity.registerReceiver(wxShareReceiver, new IntentFilter(SocialHelper.WX_SHARE_RECEIVER_ACTION));
+ LocalBroadcastManager.getInstance(activity).registerReceiver(wxShareReceiver, new IntentFilter(SocialHelper.WX_SHARE_RECEIVER_ACTION));
+// activity.registerReceiver(wxShareReceiver, new IntentFilter(SocialHelper.WX_SHARE_RECEIVER_ACTION));
}
}
@@ -382,12 +388,22 @@ private boolean notFoundFile(String filePath) {
public void onDestroy() {
if (activity != null) {
if (wxAuthReceiver != null) {
- activity.unregisterReceiver(wxAuthReceiver);
+ LocalBroadcastManager.getInstance(activity).unregisterReceiver(wxAuthReceiver);
}
if (wxShareReceiver != null) {
- activity.unregisterReceiver(wxShareReceiver);
+ LocalBroadcastManager.getInstance(activity).unregisterReceiver(wxShareReceiver);
}
activity = null;
}
}
+
+ @Override
+ public void setNeedLoginResult(boolean needLoginResult) {
+ this.needLoginResult = needLoginResult;
+ }
+
+ @Override
+ public boolean isNeedLoginResult() {
+ return needLoginResult;
+ }
}
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/WXHelperActivity.java b/socialhelper/src/main/java/net/arvin/socialhelper/WXHelperActivity.java
new file mode 100644
index 0000000..66a1e31
--- /dev/null
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/WXHelperActivity.java
@@ -0,0 +1,77 @@
+package net.arvin.socialhelper;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.constants.ConstantsAPI;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+
+/**
+ * Created by arvinljw on 2018/9/27 15:06
+ * Function:
+ * Desc:
+ */
+public abstract class WXHelperActivity extends AppCompatActivity implements IWXAPIEventHandler {
+ private IWXAPI api;
+ private SocialHelper socialHelper;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ socialHelper = getSocialHelper();
+ if (socialHelper == null) {
+ return;
+ }
+
+ String wxAppId = socialHelper.getBuilder().getWxAppId();
+ api = WXAPIFactory.createWXAPI(this, wxAppId, true);
+ api.registerApp(wxAppId);
+
+ api.handleIntent(getIntent(), this);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ api.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+ //登录
+ Log.d("WXEntryActivity", baseResp.errCode + baseResp.errStr);
+ if (socialHelper == null) {
+ return;
+ }
+ if (baseResp.getType() == ConstantsAPI.COMMAND_SENDAUTH) {
+ if (baseResp.errCode == BaseResp.ErrCode.ERR_OK) {
+ String code = ((SendAuth.Resp) baseResp).code;
+ socialHelper.sendAuthBackBroadcast(this, code);
+ } else {
+ socialHelper.sendAuthBackBroadcast(this, null);
+ }
+ } else if (baseResp.getType() == ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX) {
+ if (baseResp.errCode == BaseResp.ErrCode.ERR_OK) {
+ socialHelper.sendShareBackBroadcast(this, true);
+ } else {
+ socialHelper.sendShareBackBroadcast(this, false);
+ }
+ }
+ onBackPressed();
+ }
+
+ protected abstract SocialHelper getSocialHelper();
+}
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/entities/QQInfoEntity.java b/socialhelper/src/main/java/net/arvin/socialhelper/entities/QQInfoEntity.java
index 1f94184..afb23ea 100644
--- a/socialhelper/src/main/java/net/arvin/socialhelper/entities/QQInfoEntity.java
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/entities/QQInfoEntity.java
@@ -21,6 +21,8 @@ public final class QQInfoEntity {
private String gender;
private String figureurl;
+ private QQLoginResultEntity loginResultEntity;
+
public String getIs_yellow_year_vip() {
return is_yellow_year_vip;
}
@@ -133,6 +135,14 @@ public void setFigureurl(String figureurl) {
this.figureurl = figureurl;
}
+ public QQLoginResultEntity getLoginResultEntity() {
+ return loginResultEntity;
+ }
+
+ public void setLoginResultEntity(QQLoginResultEntity loginResultEntity) {
+ this.loginResultEntity = loginResultEntity;
+ }
+
@Override
public String toString() {
return "QQInfoEntity{" +
@@ -150,6 +160,7 @@ public String toString() {
", is_yellow_vip='" + is_yellow_vip + '\'' +
", gender='" + gender + '\'' +
", figureurl='" + figureurl + '\'' +
+ ", loginResultEntity=" + loginResultEntity +
'}';
}
}
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/entities/WBInfoEntity.java b/socialhelper/src/main/java/net/arvin/socialhelper/entities/WBInfoEntity.java
index dd695fd..af6e214 100644
--- a/socialhelper/src/main/java/net/arvin/socialhelper/entities/WBInfoEntity.java
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/entities/WBInfoEntity.java
@@ -1,5 +1,7 @@
package net.arvin.socialhelper.entities;
+import com.sina.weibo.sdk.auth.Oauth2AccessToken;
+
/**
* Created by arvinljw on 17/11/27 16:59
* Function:
@@ -71,6 +73,8 @@ public final class WBInfoEntity {
private int online_status;
private int bi_followers_count;
+ private Oauth2AccessToken loginResultEntity;
+
public String getId() {
return id;
}
@@ -287,10 +291,18 @@ public void setBi_followers_count(int bi_followers_count) {
this.bi_followers_count = bi_followers_count;
}
+ public Oauth2AccessToken getLoginResultEntity() {
+ return loginResultEntity;
+ }
+
+ public void setLoginResultEntity(Oauth2AccessToken loginResultEntity) {
+ this.loginResultEntity = loginResultEntity;
+ }
+
@Override
public String toString() {
- return "WBUserInfoTO{" +
- "id=" + id +
+ return "WBInfoEntity{" +
+ "id='" + id + '\'' +
", idstr='" + idstr + '\'' +
", screen_name='" + screen_name + '\'' +
", name='" + name + '\'' +
@@ -317,6 +329,7 @@ public String toString() {
", follow_me=" + follow_me +
", online_status=" + online_status +
", bi_followers_count=" + bi_followers_count +
+ ", loginResultEntity=" + loginResultEntity +
'}';
}
}
diff --git a/socialhelper/src/main/java/net/arvin/socialhelper/entities/WXInfoEntity.java b/socialhelper/src/main/java/net/arvin/socialhelper/entities/WXInfoEntity.java
index 194c087..3b9734c 100644
--- a/socialhelper/src/main/java/net/arvin/socialhelper/entities/WXInfoEntity.java
+++ b/socialhelper/src/main/java/net/arvin/socialhelper/entities/WXInfoEntity.java
@@ -29,6 +29,8 @@ public final class WXInfoEntity {
private String unionid;
private List privilege;
+ private WXLoginResultEntity loginResultEntity;
+
public String getOpenid() {
return openid;
}
@@ -101,9 +103,17 @@ public void setPrivilege(List privilege) {
this.privilege = privilege;
}
+ public WXLoginResultEntity getLoginResultEntity() {
+ return loginResultEntity;
+ }
+
+ public void setLoginResultEntity(WXLoginResultEntity loginResultEntity) {
+ this.loginResultEntity = loginResultEntity;
+ }
+
@Override
public String toString() {
- return "WXUserInfoTO{" +
+ return "WXInfoEntity{" +
"openid='" + openid + '\'' +
", nickname='" + nickname + '\'' +
", sex=" + sex +
@@ -113,6 +123,7 @@ public String toString() {
", headimgurl='" + headimgurl + '\'' +
", unionid='" + unionid + '\'' +
", privilege=" + privilege +
+ ", loginResultEntity=" + loginResultEntity +
'}';
}
}