陈奇
2019-05-29 c5bf501d8b507d1e3e79541e7ac9b45910860b4d
app/src/main/java/com/moral/yunfushao/activity/SplashActivity.java
@@ -2,24 +2,11 @@
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import com.lzy.okgo.cache.CacheMode;
import com.moral.andbrickslib.utils.GsonUtil;
import com.moral.andbrickslib.utils.NetworkUtil;
import com.moral.andbrickslib.utils.StatusBarUtil;
import com.moral.yunfushao.wxapi.WXEntryActivity;
import com.moral.yunfushao.wxapi.data.AccessTokenBean;
import com.moral.yunfushao.wxapi.data.TokenEffectivenessBean;
import com.moral.yunfushao.MainActivity;
import com.moral.yunfushao.MainApp;
import com.moral.yunfushao.R;
import com.moral.yunfushao.base.BaseActivity;
import com.moral.yunfushao.common.WXConstants;
import com.moral.yunfushao.httputils.HttpCallBack;
import com.moral.yunfushao.httputils.WXHttpUtil;
import com.moral.yunfushao.utils.SharedPreferencesUtil;
/**
@@ -27,7 +14,6 @@
 */
public class SplashActivity extends BaseActivity implements Runnable {
    private AccessTokenBean bean = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -77,95 +63,19 @@
    }
    @Override
    protected void onStop() {
        super.onStop();
        finish();
    }
    @Override
    public void run() {
        try {
            Thread.sleep(1000);
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        bean = SharedPreferencesUtil.getUtil(this).getWXToken();
        if (NetworkUtil.isAvailable(this)) {
            //网络可用状态是否
            if (bean == null) {
                goHome();
                //非微信登陆
            } else {
                //微信登陆
//                checkWXLogin();
                checkTokenEffective();
            }
        }
    }
    /**
     * 判断是否token有效
     */
    private void checkTokenEffective() {
        //https:api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
        String url = "https:api.weixin.qq.com/sns/auth?access_token=" + bean.getAccess_token() + "&openid=" + WXConstants.APP_ID;
        WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() {
            @Override
            public void onSuccess(String res, String msg) {
                TokenEffectivenessBean bean = GsonUtil.toObj(msg, TokenEffectivenessBean.class);
                if (bean.getErrcode() == 0) {
                    //成功授权
                    checkWXLogin();
                }
            }
            @Override
            public void showLoadingDialog() {
            }
            @Override
            public void onFail(int errno, String s) {
                //无效直接
                goHome();
            }
        });
    }
    /**
     * 检查是否登陆失效
     */
    private void checkWXLogin() {
        //
        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid= " +
                WXConstants.APP_ID +
                "&secret=" + "应用密钥" + "&code="+
                WXEntryActivity.code +
                "&grant_type=authorization_code";
//        String url = "https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID";
        WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() {
            @Override
            public void onSuccess(String res, String msg) {
                AccessTokenBean accessTokenBean = GsonUtil.toObj(msg, AccessTokenBean.class);
            }
            @Override
            public void showLoadingDialog() {
                //
            }
            @Override
            public void onFail(int errno, String s) {
                goHome();
            }
        });
    }
    private void goHome() {
        if (!TextUtils.isEmpty(MainApp.userId)) {
            Intent intent = new Intent(this, MainActivity.class);
            startActivity(intent);
        } else {
            Intent intent = new Intent(this, LoginActivity.class);
            startActivity(intent);
        }
        finish();
        Intent intent = new Intent(this, LoginActivity.class);
        startActivity(intent);
    }
}