hanjing hace 6 años
padre
commit
6ac099eb19

+ 19 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/LoginEntity.java

@@ -8,11 +8,29 @@ import java.io.Serializable;
  */
 
 public class LoginEntity implements Serializable{
-    private String token;//11@9667453894253cd1f3e9beec1bb063e9
+    private String openid;
+    private String token;
+    private String accesstoken;
     private String code;
     private String platform;
     private UserEntity user;
 
+    public String getAccesstoken() {
+        return accesstoken;
+    }
+
+    public void setAccesstoken(String accesstoken) {
+        this.accesstoken = accesstoken;
+    }
+
+    public String getOpenid() {
+        return openid;
+    }
+
+    public void setOpenid(String openid) {
+        this.openid = openid;
+    }
+
     public String getToken() {
         return token;
     }

+ 13 - 1
app/src/main/java/com/sheep/gamegroup/module/login/LoginAct.java

@@ -31,6 +31,7 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+import com.sheep.jiuyan.samllsheep.wxutil.WXAPIUtil;
 import com.umeng.socialize.UMAuthListener;
 import com.umeng.socialize.UMShareAPI;
 import com.umeng.socialize.bean.SHARE_MEDIA;
@@ -139,7 +140,18 @@ public class LoginAct extends BaseUMActivity implements LoginController {
     }
 
     private void getUserInfoFromUM(int platform, final LoginEntity entity) {
-        if (platform == LoginController.PLATFORM_QQ || platform == LoginController.PLATFORM_WX) {
+        if (platform == LoginController.PLATFORM_WX) {
+            WXAPIUtil.loadWXUserInfo(entity.getOpenid(),entity.getAccesstoken(), (ret, map)->{
+                if(ret){
+                    entity.getUser().setNickname(map.get("screen_name"));
+                    entity.getUser().setAvatar(map.get("profile_image_url"));
+                    entity.getUser().setGender("男".equals(map.get("gender")) ? 1 : 2);
+                    goEditUserInfo(entity);
+                } else {
+                    goMain(entity);
+                }
+            });
+        } else if (platform == LoginController.PLATFORM_QQ) {
             UMShareAPI.get(SheepApp.getInstance()).getPlatformInfo(this,
                     platform == LoginController.PLATFORM_QQ ? SHARE_MEDIA.QQ : SHARE_MEDIA.WEIXIN,
                     new UMAuthListener() {

+ 4 - 0
app/src/main/java/com/sheep/gamegroup/module/login/fragments/AbsLoginFgt.java

@@ -96,6 +96,8 @@ public class AbsLoginFgt extends BaseFragment {
                                 hideProgress();
                                 if (baseMessage != null) {
                                     LoginEntity loginEty = FastJsonUtils.toBean(JSONObject.toJSONString(baseMessage.getData()), LoginEntity.class);
+                                    loginEty.setOpenid(data.get("openid"));
+                                    loginEty.setAccesstoken(data.get("access_token"));
                                     if (TextUtils.isEmpty(SheepApp.getInstance().getGameCode())) {
                                         SpUtils.saveToken(SheepApp.getInstance(), loginEty.getToken());
                                         DataUtil.getInstance().initUserEntity(loginEty.getUser());
@@ -140,6 +142,8 @@ public class AbsLoginFgt extends BaseFragment {
                                 hideProgress();
                                 if (baseMessage != null) {
                                     LoginEntity loginEty = FastJsonUtils.toBean(JSONObject.toJSONString(baseMessage.getData()), LoginEntity.class);
+                                    loginEty.setOpenid(data.get("openid"));
+                                    loginEty.setAccesstoken(data.get("access_token"));
                                     if (TextUtils.isEmpty(SheepApp.getInstance().getGameCode())) {
                                         SpUtils.saveToken(SheepApp.getInstance(), loginEty.getToken());
                                         DataUtil.getInstance().initUserEntity(loginEty.getUser());

+ 26 - 26
app/src/main/java/com/sheep/gamegroup/module/plugin/model/Plugin.java

@@ -1,6 +1,6 @@
 package com.sheep.gamegroup.module.plugin.model;
 
-import com.didi.virtualapk.PluginManager;
+//import com.didi.virtualapk.PluginManager;
 import com.kfzs.cfyl.media.MediaApp;
 import com.kfzs.cfyl.share_library.util.CallBackAPI;
 import com.kfzs.cfyl.share_library.util.ContextHolder;
@@ -19,31 +19,31 @@ import java.io.File;
  * realicing@sina.com
  */
 public enum  Plugin {
-    media("com.kfzs.cfyl.media", ".apk"){
-        @Override
-        public boolean loadPlugin() {
-            if (PluginManager.getInstance(SheepApp.getInstance()).getLoadedPlugin(getPackageName()) == null) {
-//                String cpuAbi = getCPU_ABI();
-//                String pluginPath = String.format(Locale.CHINA, "%s/media_%s.apk", ClassFileHelper.DIR, cpuAbi);
-                String pluginPath = ClassFileHelper.DIR + "/media_release.apk";
-//                LogUtil.println(PluginUtil.class.getSimpleName(), "CPU_ABI =", cpuAbi, "pluginPath =", pluginPath);
-                File file = new File(pluginPath);
-                boolean isUserTestFile = TestUtil.isTest() && file.exists();
-                LogUtil.println("startPlugin", isUserTestFile);
-                File pluginFile = isUserTestFile ? file : SheepPluginUtil.getFile(this);
-                if (!pluginFile.exists()) {
-                    return false;
-                }
-                try {
-                    PluginManager.getInstance(SheepApp.getInstance()).loadPlugin(pluginFile);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    return false;
-                }
-            }
-            return loadMediaPlugin();
-        }
-    },
+//    media("com.kfzs.cfyl.media", ".apk"){
+//        @Override
+//        public boolean loadPlugin() {
+//            if (PluginManager.getInstance(SheepApp.getInstance()).getLoadedPlugin(getPackageName()) == null) {
+////                String cpuAbi = getCPU_ABI();
+////                String pluginPath = String.format(Locale.CHINA, "%s/media_%s.apk", ClassFileHelper.DIR, cpuAbi);
+//                String pluginPath = ClassFileHelper.DIR + "/media_release.apk";
+////                LogUtil.println(PluginUtil.class.getSimpleName(), "CPU_ABI =", cpuAbi, "pluginPath =", pluginPath);
+//                File file = new File(pluginPath);
+//                boolean isUserTestFile = TestUtil.isTest() && file.exists();
+//                LogUtil.println("startPlugin", isUserTestFile);
+//                File pluginFile = isUserTestFile ? file : SheepPluginUtil.getFile(this);
+//                if (!pluginFile.exists()) {
+//                    return false;
+//                }
+//                try {
+//                    PluginManager.getInstance(SheepApp.getInstance()).loadPlugin(pluginFile);
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                    return false;
+//                }
+//            }
+//            return loadMediaPlugin();
+//        }
+//    },
     media_zip_so(BuildConfig.APPLICATION_ID, ".zip") {
         @Override
         public boolean loadPlugin() {

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java

@@ -321,6 +321,9 @@ public class FgtWebX5 extends BaseFgtWebX5 {
 
             @Override
             public WebResourceResponse shouldInterceptRequest(WebView webView, String inUrl) {
+                if(TestUtil.isDev()){
+                    return null;
+                }
                 if (finallyUrl.equalsIgnoreCase(inUrl)) {
                     return null;
                 }
@@ -329,6 +332,9 @@ public class FgtWebX5 extends BaseFgtWebX5 {
 
             @Override
             public WebResourceResponse shouldInterceptRequest(WebView webView, WebResourceRequest webResourceRequest) {
+                if(TestUtil.isDev()){
+                    return null;
+                }
                 String fileUrl = webResourceRequest.getUrl().toString();
                 if (finallyUrl.equalsIgnoreCase(fileUrl)) {
                     return null;

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -397,7 +397,7 @@ public class Jump2View {
      * @param object
      */
     public void goHomePageView(final Activity context, Object object) {
-        final Intent intent = new Intent(context, ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        final Intent intent = new Intent(context, ActTest.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
         if (object instanceof String) {
             //统计用户登录信息
             UMConfigUtils.onProfileSignIn();

+ 3 - 1
app/src/main/java/com/sheep/gamegroup/util/StringUtils.java

@@ -501,7 +501,9 @@ public class StringUtils {
             String[] kvs = text.split(split);
             for (String kv : kvs) {
                 String[] temp = kv.split(split2);
-                params.put(temp[0].trim(), temp[1].trim());
+                if (temp.length == 2) {
+                    params.put(temp[0].trim(), temp[1].trim());
+                }
             }
         }
         return params;

+ 9 - 9
app/src/main/java/com/sheep/gamegroup/util/TestUtil.java

@@ -840,15 +840,15 @@ public class TestUtil {
 
     //测试插件
     private static void testPlugin(Activity activity) {
-        SheepPluginUtil.checkAndRunPlugin(activity, Plugin.media)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new AbsObserver<Plugin>() {
-                    @Override
-                    public void onNext(Plugin plugin) {
-                        CallBackAPI.get().goAct(activity, "MainActivity");
-                    }
-                });
+//        SheepPluginUtil.checkAndRunPlugin(activity, Plugin.media)
+//                .subscribeOn(Schedulers.io())
+//                .observeOn(AndroidSchedulers.mainThread())
+//                .subscribe(new AbsObserver<Plugin>() {
+//                    @Override
+//                    public void onNext(Plugin plugin) {
+//                        CallBackAPI.get().goAct(activity, "MainActivity");
+//                    }
+//                });
 
     }
 

+ 48 - 31
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -62,6 +62,7 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+import com.sheep.jiuyan.samllsheep.wxutil.WXAPIUtil;
 import com.tencent.smtt.sdk.CookieManager;
 import com.umeng.socialize.ShareAction;
 import com.umeng.socialize.UMAuthListener;
@@ -759,6 +760,7 @@ public class KFZSJs {
                         params.put("account_type", type);
                         params.put("app_id", "wx".equals(type) ? Config.WX_AUTH_APP_ID : Config.QQ_APP_ID);
                         loadThirdPartUserInfo(type, params);
+//                        onFinally("", type, params);
                     }
 
                     @Override
@@ -774,44 +776,59 @@ public class KFZSJs {
                 });
     }
 
-    private void loadThirdPartUserInfo(String platform, Map<String, String> cookies) {
-        UMShareAPI.get(SheepApp.getInstance()).getPlatformInfo(activity, "wx".equals(platform) ? SHARE_MEDIA.WEIXIN : SHARE_MEDIA.QQ,
-                new UMAuthListener() {
+    private void loadThirdPartUserInfo(final String platform, Map<String, String> cookies) {
+        if ("wx".equals(platform)) {
+            WXAPIUtil.loadWXUserInfo(cookies.get("openid"), cookies.get("access_token"), (ret, info) -> {
+                if (ret) {
+                    onFinally(info.get("screen_name"), platform, cookies);
+                } else {
+                    onFinally("", platform, cookies);
+                }
+            });
+        } else {
+            UMShareAPI.get(SheepApp.getInstance()).getPlatformInfo(activity, "wx".equals(platform) ? SHARE_MEDIA.WEIXIN : SHARE_MEDIA.QQ,
+                    new UMAuthListener() {
 
-                    @Override
-                    public void onStart(SHARE_MEDIA share_media) {
+                        @Override
+                        public void onStart(SHARE_MEDIA share_media) {
 
-                    }
+                        }
 
-                    @Override
-                    public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
-                        cookies.put("nickname", map.get("screen_name"));
-                        Uri uri = Uri.parse(iWeb.getWebUrl());
-                        String host = uri.getHost();
-                        iWeb.setCookies(host, cookies);
-                        iWeb.loadJs("handleLogin(1)");
-
-                        submitH5GameRecord(
-                                2,
-                                cookies.get("openid"),
-                                map.get("screen_name"),
-                                iWeb.getWebTitle(),
-                                iWeb.getWebUrl(),
-                                "wx".equals(platform) ? 1 : 2,
-                                -1
-                        );
-                    }
+                        @Override
+                        public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
+                            onFinally(map.get("screen_name"), platform, cookies);
+                        }
 
-                    @Override
-                    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
+                        @Override
+                        public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
+                            throwable.printStackTrace();
+                            onFinally("", platform, cookies);
+                        }
 
-                    }
+                        @Override
+                        public void onCancel(SHARE_MEDIA share_media, int i) {
 
-                    @Override
-                    public void onCancel(SHARE_MEDIA share_media, int i) {
+                        }
+                    });
+        }
+    }
 
-                    }
-                });
+    private void onFinally(String nickName, String platform, Map<String, String> cookies) {
+        cookies.put("nickname", nickName);
+        Uri uri = Uri.parse(iWeb.getWebUrl());
+        String host = uri.getHost();
+        iWeb.setCookies(host, cookies);
+        iWeb.loadJs("handleLogin(1)");
+
+        submitH5GameRecord(
+                2,
+                cookies.get("openid"),
+                nickName,
+                iWeb.getWebTitle(),
+                iWeb.getWebUrl(),
+                "wx".equals(platform) ? 1 : 2,
+                -1
+        );
     }
 
     private void submitH5GameRecord(int type, String openId, String nickname, String gameName, String gameUrl, int accountPlatform, int actionPlatform) {

+ 2 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -18,7 +18,7 @@ import com.baidu.location.LocationClient;
 import com.baidu.location.LocationClientOption;
 import com.bumptech.glide.Glide;
 import com.danikula.videocache.HttpProxyCacheServer;
-import com.didi.virtualapk.PluginManager;
+//import com.didi.virtualapk.PluginManager;
 import com.kfzs.cfyl.share_library.util.ContextHolder;
 import com.liulishuo.okdownload.OkDownload;
 import com.liulishuo.okdownload.core.dispatcher.DownloadDispatcher;
@@ -610,7 +610,7 @@ public class SheepApp extends MultiDexApplication {
     protected void attachBaseContext(Context base) {
         super.attachBaseContext(base);
         MultiDex.install(this);
-        PluginManager.getInstance(base).init();//插件化框架
+//        PluginManager.getInstance(base).init();//插件化框架
     }
 
     //应用退出的回调(模拟器才会回调)

+ 48 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/wxutil/WXAPIUtil.java

@@ -4,6 +4,16 @@ import android.content.Context;
 import android.content.Intent;
 
 import com.sheep.gamegroup.util.LogUtil;
+import com.zhy.http.okhttp.OkHttpUtils;
+import com.zhy.http.okhttp.callback.StringCallback;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import okhttp3.Call;
 
 public class WXAPIUtil {
 
@@ -14,8 +24,45 @@ public class WXAPIUtil {
         } else {
             newIntent.setClassName(context, "com.sheep.jiuyan.samllsheep.wxutil.WXUmengEntryActivity");
         }
-        LogUtil.logI("Jump to "+newIntent.getComponent().getClassName());
+        LogUtil.logI("Jump to " + newIntent.getComponent().getClassName());
         context.startActivity(newIntent);
     }
 
+    public static void loadWXUserInfo(String openId, String accessToken, WXUserInfoCallback callback) {
+        OkHttpUtils.get()
+                .url("https://api.weixin.qq.com/sns/userinfo?access_token=" + accessToken + "&openid=" + openId)
+                .build()
+                .execute(new StringCallback() {
+
+                    @Override
+                    public void onError(Call call, Exception e, int id) {
+                        callback.callback(false, null);
+                    }
+
+                    @Override
+                    public void onResponse(String response, int id) {
+                        LogUtil.logI("wx user info: " + response);
+                        try {
+                            JSONObject resultJson = new JSONObject(response);
+                            if (resultJson.has("errcode")) {
+                                callback.callback(false, null);
+                                return;
+                            }
+                            Map<String, String> info = new HashMap<>();
+                            info.put("screen_name", resultJson.getString("nickname"));
+                            info.put("profile_image_url", resultJson.getString("headimgurl"));
+                            info.put("gender", resultJson.getInt("sex")==1?"男":"女");
+                            callback.callback(true, info);
+                        } catch (JSONException je) {
+                            je.printStackTrace();
+                            callback.callback(false, null);
+                        }
+                    }
+                });
+    }
+
+    public static interface WXUserInfoCallback {
+        void callback(boolean ret, Map<String, String> userInfo);
+    }
+
 }