Browse Source

[修改]修改H5游戏需要二次登里的BUG
[修改]修改H5游戏微信登录成功后两次显示登录成功的BUG

zeki 5 years ago
parent
commit
86d50d2028

+ 7 - 4
app/src/main/AndroidManifest.xml

@@ -120,16 +120,19 @@
                 android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                 android:exported="true"
                 android:launchMode="singleTask"/>
+
+        <activity
+                android:name=".wxapi.WXPayEntryActivity"
+                android:exported="true"
+                android:launchMode="singleTop"/>
+
         <activity
                 android:name="com.ipaynow.plugin.inner_plugin.miniprogram.activity.MiniProgramPayActivity"
                 android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                 android:launchMode="singleTask"
                 android:screenOrientation="behind"
                 android:theme="@android:style/Theme.Dialog"/>
-        <activity
-                android:name=".wxapi.WXPayEntryActivity"
-                android:exported="true"
-                android:launchMode="singleTop"/>
+
         <activity
                 android:name="com.sheep.gamegroup.view.activity.WebviewAct"
                 android:screenOrientation="portrait"

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -742,6 +742,7 @@ public interface ApiService {
     @GET("app/punch/star")
     Observable<BaseMessage> getPunchStar();
 
+
     /**
      * 获取广告类型 1:开屏广告 2:弹窗广告
      */

+ 28 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/WebParams.java

@@ -23,6 +23,34 @@ public class WebParams implements Serializable {
     private String tokenKey = "authorization";
     private String invitationCodeKey = "invitation_code";
 
+    private String originAccessToken;
+    private String originRefreshToken;
+    private String originExpires;
+
+    public String getOriginAccessToken() {
+        return originAccessToken;
+    }
+
+    public void setOriginAccessToken(String originAccessToken) {
+        this.originAccessToken = originAccessToken;
+    }
+
+    public String getOriginRefreshToken() {
+        return originRefreshToken;
+    }
+
+    public void setOriginRefreshToken(String originRefreshToken) {
+        this.originRefreshToken = originRefreshToken;
+    }
+
+    public String getOriginExpires() {
+        return originExpires;
+    }
+
+    public void setOriginExpires(String originExpires) {
+        this.originExpires = originExpires;
+    }
+
     public WebParams(String url) {
         this.url = url;
     }

+ 10 - 2
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWebX5.java

@@ -1,9 +1,11 @@
 package com.sheep.gamegroup.module.webview.fragment;
 
+import android.net.Uri;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.text.TextUtils;
 
+import android.util.Log;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.liulishuo.okdownload.DownloadTask;
 import com.liulishuo.okdownload.OkDownload;
@@ -29,6 +31,7 @@ import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.tencent.mm.opensdk.constants.ConstantsAPI;
 import com.tencent.mm.opensdk.modelpay.PayResp;
+import com.tencent.smtt.sdk.CookieManager;
 import com.tencent.smtt.sdk.WebView;
 import com.umeng.socialize.UMShareListener;
 import com.umeng.socialize.bean.SHARE_MEDIA;
@@ -107,6 +110,10 @@ public abstract class BaseFgtWebX5 extends BaseFragment implements UMShareListen
             String stamp = "stamp=" + (System.currentTimeMillis() / 60_000);
             url = host + "?" + stamp + hash + "?" + stamp + "&" + query;
         }
+
+        String host = Uri.parse(url).getHost();
+
+        Log.d("访问前的Cookie 6", "-- " + CookieManager.getInstance().getCookie(Uri.parse(url).getHost()));
         if (addSheepUserAgent) {
             Map<String, String> extraHeaders = new HashMap<>();
             extraHeaders.put("User-Agent", getSheepUserAgent());
@@ -137,13 +144,14 @@ public abstract class BaseFgtWebX5 extends BaseFragment implements UMShareListen
         return true;
     }
 
-    private void handlePayResp(PayResp resp){
+    private void handlePayResp(PayResp resp) {
         String result = "";
         if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
             result = String.valueOf(resp.errCode + 9000);//微信支付 0 为支付成功;支付宝为 "9000" 代表支付成功
         }
         loadJs(String.format(Locale.CHINA, "onAlipayResult('%s')", result));
     }
+
     @Subscribe
     public void onEventMainThread(PayResp resp) {
         handlePayResp(resp);
@@ -151,7 +159,7 @@ public abstract class BaseFgtWebX5 extends BaseFragment implements UMShareListen
 
     @Override
     protected void onProcessEvent(Object event) {
-        if(event instanceof PayResp){
+        if (event instanceof PayResp) {
             handlePayResp((PayResp) event);
         }
     }

+ 25 - 5
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java

@@ -23,6 +23,7 @@ import android.view.animation.AnimationUtils;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
+import com.google.gson.Gson;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.dateview.DateUtil;
 import com.sheep.gamegroup.event.WXLoginAuthEvent;
@@ -119,13 +120,14 @@ public class FgtWebX5 extends BaseFgtWebX5 {
             return;
         }
 
-        if(webParams.getTitle().equals("游戏")){
+        if (webParams.getTitle().equals("游戏")) {
             //不显示系统的标题栏
-            getActivity().getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN,
-                    WindowManager.LayoutParams.FLAG_FULLSCREEN );
+            getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
         }
 
         String url = webParams.getUrl();
+        Log.d("访问前的Cookie 5", "-- " + CookieManager.getInstance().getCookie(Uri.parse(url).getHost()));
         String jsUrl = webParams.getJsUrl();
         if (!TextUtils.isEmpty(url)) {
             url = url.trim();
@@ -137,6 +139,9 @@ public class FgtWebX5 extends BaseFgtWebX5 {
             setLandscape();
         }
         initWebViewSettings(mWebView);
+        if(webParams.getOriginAccessToken()!=null){
+            saveWXToken(requireContext(), Uri.parse(webParams.getUrl()).getHost(), webParams.getOriginAccessToken(), webParams.getOriginRefreshToken(), webParams.getOriginExpires());
+        }
         kfzsJs = new KFZSJs(SheepApp.getInstance().getCurrentActivity(), this);
         if (TextUtils.isEmpty(jsUrl)) {
             loadUrl(url);
@@ -160,7 +165,7 @@ public class FgtWebX5 extends BaseFgtWebX5 {
     @Override
     protected void onProcessEvent(Object ev) {
         if (ev instanceof WXLoginAuthEvent) {
-            Log.d("######","···广播 回调登录"+getWebUrl());
+            Log.d("######", "···广播 回调登录" + getWebUrl());
             EventBus.getDefault().unregister(this);
             if (!TextUtils.isEmpty(((WXLoginAuthEvent) ev).code)) {
                 WXAPIUtil.loadWXUserToken(((WXLoginAuthEvent) ev).code, (ret, openid, accessToken, refreshToken) -> {
@@ -317,7 +322,6 @@ public class FgtWebX5 extends BaseFgtWebX5 {
     private String mCameraPhotoPath;
 
 
-
     private void loadUrl(final String url) {
 
         mWebView.setWebChromeClient(new WebChromeClient() {
@@ -838,6 +842,22 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         CookieSyncManager.createInstance(context).sync();
     }
 
+    public static void saveWXToken(Context context, String host, String accessToken, String refreshToken, String expires) {
+        CookieSyncManager.createInstance(context);
+        CookieManager cookieManager = CookieManager.getInstance();
+        cookieManager.setAcceptCookie(true);
+        String cookies = cookieManager.getCookie(host);
+        Map<String, String> cookieMap = StringUtils.string2Map(cookies, ";", "=");
+        cookieMap.put("access_token", accessToken);
+        cookieMap.put("refresh_token", refreshToken);
+        cookieMap.put("Expires", expires);
+        for (String key : cookieMap.keySet()) {
+            cookieManager.setCookie(host, key + "=" + cookieMap.get(key));
+        }
+        cookieManager.flush();
+        CookieSyncManager.createInstance(context).sync();
+    }
+
     public void initDataOnVisibleToUser() {
         if (onResumeCount > 0 && mWebView != null && webParams != null && webParams.isRefreshClick()) {
             mWebView.invalidate();

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

@@ -67,6 +67,7 @@ import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.sheep.jiuyan.samllsheep.wxutil.WXAPIUtil;
 import com.snail.antifake.jni.EmulatorDetectUtil;
+import com.tencent.smtt.sdk.CookieManager;
 import com.youmi.android.offer.BaseActYmPermissionCheck;
 import com.youmi.android.offer.YmConfig;
 import com.zhy.http.okhttp.OkHttpUtils;
@@ -89,9 +90,7 @@ import rx.functions.Action1;
 
 import java.io.File;
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 import static com.sheep.gamegroup.model.entity.TaskEty.*;
@@ -946,6 +945,7 @@ public class Jump2View {
 
     public void goWeb(Context context, WebParams webParams, boolean needNewTask) {
         String url = webParams.checkShowTitle().getUrl();
+        Log.d("访问前的Cookie 2", "-- " + CookieManager.getInstance().getCookie(Uri.parse(url).getHost()));
         if (TextUtils.isEmpty(url)) {
             G.showToast(R.string.service_data_error);
             return;
@@ -980,6 +980,7 @@ public class Jump2View {
         if (needNewTask) {
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         }
+        Log.d("访问前的Cookie 3", "-- " + CookieManager.getInstance().getCookie(Uri.parse(url).getHost()));
         if (webParams.isForResult()) {
             ((Activity) context).startActivityForResult(intent, webParams.getAction());
         } else {
@@ -1055,6 +1056,12 @@ public class Jump2View {
         String host = uri.getHost();
         //FgtWebX5.saveWXToken(context, host, "", "dwfewdf");
         WebParams wp = new WebParams(url, "游戏");
+        String cookies = CookieManager.getInstance().getCookie(Uri.parse(url).getHost());
+        Map<String, String> cookieMap = StringUtils.string2Map(cookies, ";", "=");
+        wp.setOriginAccessToken(cookieMap.get("access_token"));
+        wp.setOriginRefreshToken(cookieMap.get("refresh_token"));
+        wp.setOriginExpires(cookieMap.get("Expires"));
+
         wp.setNeedJsInteract(true);
 //        wp.setJsUrl(Config.SMALL_STATION_URL + Config.STATION_SMALL_SHEEP_H5GAME + "/bridge.js");
         String refreshToken = null;
@@ -1074,6 +1081,7 @@ public class Jump2View {
                         FgtWebX5.saveWXToken(context, host, aToken, rToken);
                     }
                 }
+                Log.d("访问前的Cookie 1", "-- " + CookieManager.getInstance().getCookie(Uri.parse(url).getHost()));
                 Jump2View.getInstance().goWeb(context, wp, true);
             });
         }

+ 2 - 0
app/src/main/java/com/sheep/gamegroup/util/h5game/H5GameUtil.java

@@ -2,6 +2,7 @@ package com.sheep.gamegroup.util.h5game;
 
 import android.app.Activity;
 import android.net.Uri;
+import android.util.Log;
 import com.alibaba.fastjson.JSONObject;
 import com.sheep.gamegroup.model.api.IWeb;
 import com.sheep.gamegroup.model.entity.BaseMessage;
@@ -60,6 +61,7 @@ public class H5GameUtil {
         cookies.put("nickname", nickName);
         Uri uri = Uri.parse(iWeb.getWebUrl());
         String host = uri.getHost();
+        Log.d("--COOKIE--",cookies.toString());
         iWeb.setCookies(host, cookies);
         iWeb.loadJs("handleLogin(1)");
         iWeb.loadJs("window.location.reload()");

+ 4 - 2
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -36,6 +36,7 @@ import com.sheep.gamegroup.module.qrcode.ScanQRCodeActivity;
 import com.sheep.gamegroup.module.user.activity.ActVip;
 import com.sheep.gamegroup.module.user.model.BuyVipReq;
 import com.sheep.gamegroup.module.user.model.TempUserResp;
+import com.sheep.gamegroup.module.webview.fragment.BaseFgtWebX5;
 import com.sheep.gamegroup.util.*;
 import com.sheep.gamegroup.util.h5game.H5GameUtil;
 import com.sheep.gamegroup.util.share.ShareLinkConfig;
@@ -48,6 +49,7 @@ import com.sheep.gamegroup.view.activity.helper.AdHelper;
 import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
 import com.sheep.jiuyan.samllsheep.bean.UserCenterModule;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
@@ -898,7 +900,7 @@ public class KFZSJs {
 
     @Subscribe
     public void whenWXAuth(WXLoginAuthEvent ev) {
-        Log.d("######","···EVENTBUS 回调登录");
+        Log.d("######", "···EVENTBUS 回调登录");
         EventBus.getDefault().unregister(this);
         if (!TextUtils.isEmpty(ev.code)) {
             WXAPIUtil.loadWXUserToken(ev.code, (ret, openid, accessToken, refreshToken) -> {
@@ -918,8 +920,8 @@ public class KFZSJs {
 
     @JavascriptInterface
     public void loginThirdPartApp(String type) {
-        Log.d("######","···三方登录中···");
         if ("wx".equals(type)) {
+            ((BaseFragment) iWeb).registerBroadcastReceiver();
             WXAPIUtil.launchAuth(activity);
             if (!EventBus.getDefault().isRegistered(this)) {
                 EventBus.getDefault().register(this);

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java

@@ -2,20 +2,25 @@ package com.sheep.gamegroup.view.activity;
 
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
+import android.net.Uri;
 import android.support.v4.app.Fragment;
 import android.text.TextUtils;
 import android.util.Log;
 import com.sheep.gamegroup.absBase.BaseContainerActivity;
 import com.sheep.gamegroup.model.api.IWeb;
 import com.sheep.gamegroup.model.entity.WebParams;
+import com.sheep.gamegroup.util.GsonUtils;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+import com.tencent.smtt.sdk.CookieManager;
 import com.umeng.socialize.UMShareAPI;
 import com.umeng.socialize.UMShareListener;
 import com.umeng.socialize.bean.SHARE_MEDIA;
 
+import java.util.HashMap;
+
 /**
  * web页面--含有所有js及url后添加authorization
  * Created by zengjiebin on 2018/4/27.

+ 127 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5NewProcess.java

@@ -1,8 +1,134 @@
 package com.sheep.gamegroup.view.activity;
 
-public class ActWebX5NewProcess extends ActWebX5{
+
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.net.Uri;
+import android.support.v4.app.Fragment;
+import android.text.TextUtils;
+import android.util.Log;
+import com.sheep.gamegroup.absBase.BaseContainerActivity;
+import com.sheep.gamegroup.model.api.IWeb;
+import com.sheep.gamegroup.model.entity.WebParams;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.Config;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+import com.tencent.smtt.sdk.CookieManager;
+import com.umeng.socialize.UMShareAPI;
+import com.umeng.socialize.UMShareListener;
+import com.umeng.socialize.bean.SHARE_MEDIA;
+
+/**
+ * web页面--含有所有js及url后添加authorization
+ * Created by zengjiebin on 2018/4/27.
+ */
+public class ActWebX5NewProcess extends BaseContainerActivity implements UMShareListener {
+
+    protected WebParams webParams;
+
+    private BaseFragment fragment;
+
+    private int orientPara;
+
+    @Override
+    protected boolean showWhiteStatusBar() {
+        return true;
+    }
+
+    @Override
+    protected Fragment initFragment() {
+        initWebParams();
+        fragment = ViewUtil.newWebFragment(webParams);
+        return fragment;
+    }
+
+    public void initWebParams() {
+        Intent intent = getIntent();
+        if (intent.hasExtra("exurl")) {
+            String token = intent.getStringExtra("extoken");
+            if (TextUtils.isEmpty(token)) {
+                finish();
+                return;
+            }
+            token = SpUtils.exchangeToken(token);
+            String url = intent.getStringExtra("exurl");
+            Log.d("访问前的Cookie 4", "-- "+ CookieManager.getInstance().getCookie(Uri.parse(url).getHost()));
+            url += url.contains("?") ? "&" : "?";
+            url += "authorization=" + token;
+            webParams = new WebParams(url, intent.getStringExtra("extitle"));
+        } else {
+            webParams = (WebParams) intent.getSerializableExtra(WebParams.class.getSimpleName());
+            orientPara = intent.getIntExtra("extra_orient", -1);
+        }
+        Log.e("WebRecharge", "orient: " + orientPara);
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();
     }
+
+    @Override
+    public void onBackPressed() {
+        if (fragment != null && !fragment.onBackPressed()) {
+            finish();
+        }
+    }
+
+    @Override
+    public void finish() {
+        runOnUiThread(() -> {
+            if (fragment instanceof IWeb && (orientPara == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE || orientPara == ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE)) {
+                IWeb webFragment = (IWeb) fragment;
+                String url = webFragment.getWebUrl();
+                if (!TextUtils.isEmpty(url) && (url.contains(Config.PATH_DIRECTIONAL_RECHARGE)
+                        || url.contains(Config.PATH_DIRECTIONAL_MAKEGOLD))) {
+                    Log.e("WebRecharge", "execute orient ");
+                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+                }
+            }
+            super.finish();
+        });
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (fragment != null) {
+            fragment.onActivityResult(requestCode, resultCode, data);
+        }
+        try {
+            UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void onStart(SHARE_MEDIA share_media) {
+
+    }
+
+    @Override
+    public void onResult(SHARE_MEDIA share_media) {
+        if (fragment instanceof IWeb) {
+            ((IWeb) fragment).onShareResult();
+        }
+    }
+
+    @Override
+    public void onError(SHARE_MEDIA share_media, Throwable throwable) {
+
+    }
+
+    @Override
+    public void onCancel(SHARE_MEDIA share_media) {
+
+    }
 }

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

@@ -453,6 +453,7 @@ public class SheepApp extends MultiDexApplication {
         });
         x.Ext.init(this);
         x.Ext.setDebug(org.xutils.BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.
+
         UMConfigure.setLogEnabled(true);
         UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "5ab0a1da8f4a9d742900035f");
 //        UMShareAPI.get(this);

+ 16 - 9
app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java

@@ -129,7 +129,7 @@ public abstract class BaseFragment extends RxFragment {
         super.onViewCreated(view, savedInstanceState);
         butterKnifeBindView();
         onViewCreated();
-        initBroadcastReceiver();
+
     }
 
     protected boolean firstVisibleToUser = true;
@@ -157,9 +157,16 @@ public abstract class BaseFragment extends RxFragment {
     /**
      * 注册广播接收器
      */
-    private void initBroadcastReceiver() {
+
+    boolean hasRegister = false;
+    public void registerBroadcastReceiver() {
         IntentFilter intentFilter = new IntentFilter(ProcessEventUtil.ACTION_BROADCAST_RECEIVER_PROCESS_EVENT);
-        getContext().registerReceiver(getBroadcastReceiver(), intentFilter);
+        if(hasRegister){
+            getContext().unregisterReceiver(getBroadcastReceiver());
+        }else {
+            getContext().registerReceiver(getBroadcastReceiver(), intentFilter);
+        }
+        hasRegister = true;
     }
 
     BroadcastReceiver broadcastReceiver;
@@ -175,11 +182,17 @@ public abstract class BaseFragment extends RxFragment {
                             switch (intent.getStringExtra(ProcessEventUtil.KEY_PROCESS_EVENT_TYPE)) {
                                 case ProcessEventUtil.EVENT_WX_LOGIN_AUTH:
                                     Log.d("######","···收到微信登录广播");
+                                    abortBroadcast();
                                     onProcessEvent(GsonUtils.getGlobalGson().fromJson(intent.getStringExtra(ProcessEventUtil.KEY_PROCESS_EVENT_JSON), WXLoginAuthEvent.class));
+                                    context.unregisterReceiver(getBroadcastReceiver());
+                                    hasRegister = false;
                                     break;
                                 case ProcessEventUtil.EVENT_PAY_RESP:
                                     Log.d("######","···收到支付广播");
+                                    abortBroadcast();
                                     onProcessEvent(GsonUtils.getGlobalGson().fromJson(intent.getStringExtra(ProcessEventUtil.KEY_PROCESS_EVENT_JSON), PayResp.class));
+                                    context.unregisterReceiver(getBroadcastReceiver());
+                                    hasRegister = false;
                                     break;
                             }
                         }
@@ -269,12 +282,6 @@ public abstract class BaseFragment extends RxFragment {
         backHandleInterface.onSelectedFragment(this);
     }
 
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        getContext().unregisterReceiver(getBroadcastReceiver());
-    }
-
     public void setLandscape() {
         getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
     }

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

@@ -57,6 +57,7 @@ public class WXAPIUtil {
         final SendAuth.Req req = new SendAuth.Req();
         req.scope = "snsapi_userinfo,";
         req.state = "cybeye";
+        Log.d("######","···三方登录中···");
         wxapi.sendReq(req);
     }
 

+ 6 - 11
app/src/sheep/java/com/sheep/jiuyan/samllsheep/wxapi/WXEntryActivity.java

@@ -19,24 +19,19 @@ import com.umeng.socialize.weixin.view.WXCallbackActivity;
 
 public class WXEntryActivity extends WXCallbackActivity {//implements IWXAPIEventHandler
 
-    static boolean hasCreate = false;
-
     @Override
     public void onCreate(Bundle bundle) {
         super.onCreate(bundle);
-        if(!hasCreate){
-            Log.d("###WXEntryAct: ","onCreate");
-            IWXAPI wxapi = WXAPIFactory.createWXAPI(this, Config.WX_AUTH_APP_ID, true);
-            wxapi.registerApp(Config.WX_AUTH_APP_ID);
-            wxapi.handleIntent(getIntent(), this);
-            hasCreate = true;
-        }
+        Log.d("###WXEntryAct: ", "onCreate");
+        IWXAPI wxapi = WXAPIFactory.createWXAPI(this, Config.WX_AUTH_APP_ID, true);
+        wxapi.registerApp(Config.WX_AUTH_APP_ID);
+        wxapi.handleIntent(getIntent(), this);
         finish();
     }
 
     @Override
     public void onNewIntent(Intent newIntent) {
-        Log.d("###WXEntryAct: ","onNewIntent");
+        Log.d("###WXEntryAct: ", "onNewIntent");
         IWXAPI wxapi = WXAPIFactory.createWXAPI(this, Config.WX_AUTH_APP_ID, true);
         wxapi.registerApp(Config.WX_AUTH_APP_ID);
         wxapi.handleIntent(getIntent(), this);
@@ -53,7 +48,7 @@ public class WXEntryActivity extends WXCallbackActivity {//implements IWXAPIEven
     @Override
     public void onResp(BaseResp resp) {
         if (resp instanceof SendAuth.Resp) {
-            Log.d("######","···收到微信登录成功的onResp");
+            Log.d("######", "···收到微信登录成功的onResp");
             if (resp.errCode == BaseResp.ErrCode.ERR_OK) {
                 String code = ((SendAuth.Resp) resp).code;
                 WXLoginAuthEvent wxLoginAuthEvent = new WXLoginAuthEvent(code);