Parcourir la source

h5 game login plugin

hanjing il y a 6 ans
Parent
commit
81c615bbda
20 fichiers modifiés avec 313 ajouts et 816 suppressions
  1. 5 0
      app/src/main/java/com/sheep/gamegroup/dateview/DateUtil.java
  2. 4 0
      app/src/main/java/com/sheep/gamegroup/model/api/IWeb.java
  3. 9 1
      app/src/main/java/com/sheep/gamegroup/model/entity/WebParams.java
  4. 1 10
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWeb.java
  5. 0 19
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWebX5.java
  6. 50 37
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWeb.java
  7. 45 55
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java
  8. 13 1
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  9. 39 0
      app/src/main/java/com/sheep/gamegroup/util/StringUtils.java
  10. 8 6
      app/src/main/java/com/sheep/gamegroup/util/TestUtil.java
  11. 0 294
      app/src/main/java/com/sheep/gamegroup/util/js/BaseActWeb.java
  12. 0 295
      app/src/main/java/com/sheep/gamegroup/util/js/BaseActWebX5.java
  13. 99 0
      app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java
  14. 4 5
      app/src/main/java/com/sheep/gamegroup/util/share/ShareLinkConfig.java
  15. 2 2
      app/src/main/java/com/sheep/gamegroup/view/activity/ActInvitation.java
  16. 6 61
      app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java
  17. 7 25
      app/src/main/java/com/sheep/gamegroup/view/activity/MiddleSchemeAct.java
  18. 4 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/Config.java
  19. 5 5
      app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java
  20. 12 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/dateview/DateUtil.java

@@ -122,6 +122,11 @@ public class DateUtil {
         return format.format(new Date(time));
     }
 
+    public static String getTimeEn(long time, String timeFormat) {
+        SimpleDateFormat format = new SimpleDateFormat(timeFormat, Locale.US);
+        return format.format(new Date(time));
+    }
+
     /**
      * 不同年的显示时间格式
      */

+ 4 - 0
app/src/main/java/com/sheep/gamegroup/model/api/IWeb.java

@@ -2,6 +2,8 @@ package com.sheep.gamegroup.model.api;
 
 import com.sheep.gamegroup.model.entity.TaskEty;
 
+import java.util.Map;
+
 /**
  * Created by realicing on 2019/4/12.
  * realicing@sina.com
@@ -31,4 +33,6 @@ public interface IWeb {
     void setNonTouchArea(float height);
 
     String getWebUrl();
+
+    void setCookies(String url, Map<String, String> params);
 }

+ 9 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/WebParams.java

@@ -121,7 +121,7 @@ public class WebParams implements Serializable {
         return tokenKey;
     }
 
-    public String getInvitationCodeKey(){
+    public String getInvitationCodeKey() {
         return invitationCodeKey;
     }
 
@@ -147,4 +147,12 @@ public class WebParams implements Serializable {
         }
         return this;
     }
+
+    public boolean isFullScreen() {
+        return url.contains("fullscreen=1");
+    }
+
+    public boolean isLandscape() {
+        return url.contains("orientation=landscape");
+    }
 }

+ 1 - 10
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWeb.java

@@ -17,6 +17,7 @@ import com.sheep.gamegroup.model.api.IWeb;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DownloadUtil;
+import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
@@ -65,16 +66,6 @@ public abstract class BaseFgtWeb extends BaseFragment implements UMShareListener
     }
 
 
-    public static String addUrlToken(String url) {
-        return addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
-    }
-
-    public static String addUrlQuery(String url, String key, String value) {
-        if(url.contains("?"+key+"=") || url.contains("#"+key+"=") || url.contains("&"+key+"=")){
-            return url;
-        }
-        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
-    }
     public void setH5Type(String h5Type) {
         switch (h5Type){
             case "is_unicom":

+ 0 - 19
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWebX5.java

@@ -64,18 +64,6 @@ public abstract class BaseFgtWebX5 extends BaseFragment implements UMShareListen
         SheepApp.getInstance().getCurrentActivity().finish();
     }
 
-
-    public static String addUrlToken(String url) {
-        return addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
-    }
-
-    public static String addUrlQuery(String url, String key, String value) {
-        if (url.contains("?" + key + "=") || url.contains("#" + key + "=") || url.contains("&" + key + "=")) {
-            return url;
-        }
-        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
-    }
-
     public void setH5Type(String h5Type) {
         switch (h5Type) {
             case "is_unicom":
@@ -136,13 +124,6 @@ public abstract class BaseFgtWebX5 extends BaseFragment implements UMShareListen
         }
         WebViewCacheInterceptorInst.getInstance().loadUrl(url, map, webView.getSettings().getUserAgentString());
     }
-//    protected void webViewLoadUrl(WebView webView, String url){
-//        if(TestUtil.isDev()){
-//            webView.loadUrl(url);
-//            return;
-//        }
-//        WebViewCacheInterceptorInst.getInstance().loadUrl(webView,url);
-//    }
 
     @Override
     public boolean userButterKnife() {

+ 50 - 37
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWeb.java

@@ -15,6 +15,8 @@ import android.view.MotionEvent;
 import android.view.View;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
+import android.webkit.CookieManager;
+import android.webkit.CookieSyncManager;
 import android.webkit.ValueCallback;
 import android.webkit.WebChromeClient;
 import android.webkit.WebSettings;
@@ -24,6 +26,7 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.dateview.DateUtil;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.util.CommonUtil;
@@ -101,54 +104,30 @@ public class FgtWeb extends BaseFgtWeb {
         if (!TextUtils.isEmpty(url)) {
             url = url.trim();
         }
-        if (webParams.isShowTitle()) {
-
+        if (webParams.isFullScreen()) {
+            setFullScreen();
         }
-        initWebViewSettings(mWebView);
-//        try {
-//            if (TestUtil.isTest())
-//                WebView.setWebContentsDebuggingEnabled(true);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-//            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+        if (webParams.isLandscape()) {
+            setLandscape();
         }
+        initWebViewSettings(mWebView);
         if (TextUtils.isEmpty(jsUrl)) {
             loadUrl(url);
         } else {
             initJsData(url, jsUrl);
         }
+
     }
 
     public static FgtWeb newInstance(WebParams webParams) {
         FgtWeb fragment = new FgtWeb();
         fragment.webParams = webParams;
-//        Bundle bundle = new Bundle();
-//        DataUtil.putObject(bundle, webParams);
-//        fragment.setArguments(bundle);
         return fragment;
     }
 
     public FgtWeb() {
     }
 
-//    @Override
-//    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-//        View rootView = super.onCreateView(inflater, container, savedInstanceState);
-//        Bundle bundle = getArguments();
-//        if (bundle != null) {
-//            WebParams webParams = DataUtil.getObject(bundle, WebParams.class);
-//            if(webParams != null){
-//                this.webParams = webParams;
-//                checkWebParams(webParams);
-//                initView();
-//                initListener();
-//            }
-//        }
-//        return rootView;
-//    }
-
     //忽略 添加有范商城快捷入口
     public static final String KEY_IGNORE_ADD_YOU_FAN_LAUNCHER = "ignore_add_you_fan_launcher";
 
@@ -157,13 +136,11 @@ public class FgtWeb extends BaseFgtWeb {
             boolean isIgnore = SpUtils.getAsBoolean(KEY_IGNORE_ADD_YOU_FAN_LAUNCHER, false);
             boolean hasShortcut = SysAppUtil.hasShortcut(SheepApp.getInstance(), Config.YF_SHOP_NAME);
             boolean isShow = !hasShortcut && !isIgnore && !CommonUtil.getInstance().hasYouFanLauncher();//未忽略并且没有添加有范商品入口
-//            boolean isShow = !isIgnore && !SysAppUtil.isEnableComponentYf();
             if (isShow) {
                 ViewUtil.showMsgDialog(SheepApp.getInstance().getCurrentActivity(), new DialogConfig().setTitle("温馨提示")
                         .setMsg("亲,喜欢的话,就添加一个商城的桌面快捷入口吧!(点击否将不再提示)")
                         .setBtnLeftText("否").setBtnLeftOnClickListener(view -> SpUtils.putAsBoolean(KEY_IGNORE_ADD_YOU_FAN_LAUNCHER, true))
                         .setBtnRightText("是").setBtnRightOnClickListener(view -> CommonUtil.getInstance().addYouFanLauncher()));
-//                        .setBtnRightText("是").setBtnRightOnClickListener(view -> SysAppUtil.enableComponentYf()));
             }
         }
     }
@@ -182,6 +159,9 @@ public class FgtWeb extends BaseFgtWeb {
                     @Override
                     public void onResponse(String response, int id) {
                         js = response;
+                        if(js.contains("%s%")){
+                            js = js.replaceAll("%s%", Config.SMALL_STATION_URL);
+                        }
                         loadUrl(url);
                     }
                 });
@@ -437,6 +417,13 @@ public class FgtWeb extends BaseFgtWeb {
             public void onPageFinished(WebView view, String url) {
                 LogUtil.println("ActWeb", "onPageFinished", url);
                 super.onPageFinished(view, url);
+                CookieManager cookieManager = CookieManager.getInstance();
+                if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
+                    cookieManager.flush();
+                }
+                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+                    CookieSyncManager.getInstance().sync();
+                }
                 loadJs();
             }
         });
@@ -448,11 +435,11 @@ public class FgtWeb extends BaseFgtWeb {
                 if (url.startsWith(Config.YF_SHOP_HOME)) {
                     webParams.tokenFirstUpperCase();
                 }
-                loadUrl = addUrlQuery(url, webParams.getTokenKey(), SpUtils.getToken(SheepApp.getInstance()));
-                loadUrl = addUrlQuery(loadUrl, "pf", Config.YF_SHOP_PLATFORM);
-                loadUrl = addUrlQuery(loadUrl, "device_id", DeviceUtil.getDeviceId(SheepApp.getInstance()));
+                loadUrl = StringUtils.addUrlQuery(url, webParams.getTokenKey(), SpUtils.getToken(SheepApp.getInstance()));
+                loadUrl = StringUtils.addUrlQuery(loadUrl, "pf", Config.YF_SHOP_PLATFORM);
+                loadUrl = StringUtils.addUrlQuery(loadUrl, "device_id", DeviceUtil.getDeviceId(SheepApp.getInstance()));
             }
-            loadUrl = addUrlQuery(loadUrl, webParams.getInvitationCodeKey(), DataUtil.getInstance().getInvitationCode());
+            loadUrl = StringUtils.addUrlQuery(loadUrl, webParams.getInvitationCodeKey(), DataUtil.getInstance().getInvitationCode());
             LogUtil.println("ActWeb loadUrl = " + loadUrl);
             webViewLoadUrl(mWebView, loadUrl);
         } else {
@@ -608,7 +595,8 @@ public class FgtWeb extends BaseFgtWeb {
             int yy = WidgetUtil.Px2Dp(getContext(), y);
             switch (event.getAction()) {
                 case MotionEvent.ACTION_DOWN:
-                    if (yy < height) {
+//                    if (yy < height) {
+                    if (height > 0) {
                         mWebView.requestDisallowInterceptTouchEvent(true);
                     } else {
                         mWebView.requestDisallowInterceptTouchEvent(false);
@@ -632,4 +620,29 @@ public class FgtWeb extends BaseFgtWeb {
         loadJs(callback + "(" + data + ")");
     }
 
+    public void setCookies(String host, Map<String, String> params) {
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+            CookieSyncManager.createInstance(getContext());
+        }
+        CookieManager cookieManager = CookieManager.getInstance();
+        cookieManager.setAcceptCookie(true);
+        String cookies = cookieManager.getCookie(host);
+        Map<String, String> cookieMap = StringUtils.string2Map(cookies, ";", "=");
+        StringUtils.mergeMap(cookieMap, params);
+        cookieMap.put("Domain", host);
+        cookieMap.put("Path", "/");
+        cookieMap.put("Expires", DateUtil.getTimeEn(System.currentTimeMillis() + 15 * 86_400_000, "EEE, dd MMM yyyy HH:mm:ss") + " GMT");
+        cookieMap.put("MaxAge", "" + (15 * 86_400_000));
+        for (String key : cookieMap.keySet()) {
+            cookieManager.setCookie(host, key + "=" + cookieMap.get(key));
+        }
+        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
+            cookieManager.flush();
+        }
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+            CookieSyncManager.createInstance(getContext()).sync();
+        }
+    }
+
 }
+

+ 45 - 55
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java

@@ -12,6 +12,8 @@ import android.provider.MediaStore;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.animation.Animation;
@@ -20,6 +22,7 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.dateview.DateUtil;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.module.webview.util.WebResourceRequestAdapter;
@@ -47,6 +50,8 @@ import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
 import com.tencent.smtt.export.external.interfaces.WebResourceResponse;
+import com.tencent.smtt.sdk.CookieManager;
+import com.tencent.smtt.sdk.CookieSyncManager;
 import com.tencent.smtt.sdk.ValueCallback;
 import com.tencent.smtt.sdk.WebChromeClient;
 import com.tencent.smtt.sdk.WebSettings;
@@ -58,6 +63,9 @@ import com.zhy.http.okhttp.callback.StringCallback;
 
 import java.io.File;
 import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -107,19 +115,13 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         if (!TextUtils.isEmpty(url)) {
             url = url.trim();
         }
-        if (webParams.isShowTitle()) {
-
+        if (webParams.isFullScreen()) {
+            setFullScreen();
         }
-        initWebViewSettings(mWebView);
-//        try {
-//            if (TestUtil.isTest())
-//                WebView.setWebContentsDebuggingEnabled(true);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-//            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+        if (webParams.isLandscape()) {
+            setLandscape();
         }
+        initWebViewSettings(mWebView);
         if (TextUtils.isEmpty(jsUrl)) {
             loadUrl(url);
         } else {
@@ -130,50 +132,12 @@ public class FgtWebX5 extends BaseFgtWebX5 {
     public static FgtWebX5 newInstance(WebParams webParams) {
         FgtWebX5 fragment = new FgtWebX5();
         fragment.webParams = webParams;
-//        Bundle bundle = new Bundle();
-//        DataUtil.putObject(bundle, webParams);
-//        fragment.setArguments(bundle);
         return fragment;
     }
 
     public FgtWebX5() {
     }
 
-//    @Override
-//    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-//        View rootView = super.onCreateView(inflater, container, savedInstanceState);
-//        Bundle bundle = getArguments();
-//        if (bundle != null) {
-//            WebParams webParams = DataUtil.getObject(bundle, WebParams.class);
-//            if(webParams != null){
-//                this.webParams = webParams;
-//                checkWebParams(webParams);
-//                initView();
-//                initListener();
-//            }
-//        }
-//        return rootView;
-//    }
-
-    //忽略 添加有范商城快捷入口
-    public static final String KEY_IGNORE_ADD_YOU_FAN_LAUNCHER = "ignore_add_you_fan_launcher";
-
-    private void checkWebParams(WebParams webParams) {
-        if (webParams.getUrl().startsWith(Config.YF_SHOP_HOME_SHEEP.split("\\?")[0]) || webParams.getUrl().startsWith(Config.YF_SHOP_HOME_SHEEP_TEST.split("\\?")[0])) {//检测是否是有范商城地址
-            boolean isIgnore = SpUtils.getAsBoolean(KEY_IGNORE_ADD_YOU_FAN_LAUNCHER, false);
-            boolean hasShortcut = SysAppUtil.hasShortcut(SheepApp.getInstance(), Config.YF_SHOP_NAME);
-            boolean isShow = !hasShortcut && !isIgnore && !CommonUtil.getInstance().hasYouFanLauncher();//未忽略并且没有添加有范商品入口
-//            boolean isShow = !isIgnore && !SysAppUtil.isEnableComponentYf();
-            if (isShow) {
-                ViewUtil.showMsgDialog(SheepApp.getInstance().getCurrentActivity(), new DialogConfig().setTitle("温馨提示")
-                        .setMsg("亲,喜欢的话,就添加一个商城的桌面快捷入口吧!(点击否将不再提示)")
-                        .setBtnLeftText("否").setBtnLeftOnClickListener(view -> SpUtils.putAsBoolean(KEY_IGNORE_ADD_YOU_FAN_LAUNCHER, true))
-                        .setBtnRightText("是").setBtnRightOnClickListener(view -> CommonUtil.getInstance().addYouFanLauncher()));
-//                        .setBtnRightText("是").setBtnRightOnClickListener(view -> SysAppUtil.enableComponentYf()));
-            }
-        }
-    }
-
     //初始化js代码数据
     private void initJsData(final String url, String jsUrl) {
         OkHttpUtils.get()
@@ -188,6 +152,9 @@ public class FgtWebX5 extends BaseFgtWebX5 {
                     @Override
                     public void onResponse(String response, int id) {
                         js = response;
+                        if(js.contains("%s%")){
+                            js = js.replaceAll("%s%", Config.SMALL_STATION_URL);
+                        }
                         loadUrl(url);
                     }
                 });
@@ -443,6 +410,11 @@ public class FgtWebX5 extends BaseFgtWebX5 {
             public void onPageFinished(WebView view, String url) {
                 LogUtil.println("ActWebX5", "onPageFinished", url);
                 super.onPageFinished(view, url);
+                CookieManager cookieManager = CookieManager.getInstance();
+                cookieManager.flush();
+                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+                    CookieSyncManager.getInstance().sync();
+                }
                 loadJs();
             }
         });
@@ -454,12 +426,12 @@ public class FgtWebX5 extends BaseFgtWebX5 {
                 if (url.startsWith(Config.YF_SHOP_HOME)) {
                     webParams.tokenFirstUpperCase();
                 }
-                loadUrl = addUrlQuery(url, webParams.getTokenKey(), SpUtils.getToken(SheepApp.getInstance()));
-                loadUrl = addUrlQuery(loadUrl, "pf", Config.YF_SHOP_PLATFORM);
-                loadUrl = addUrlQuery(loadUrl, "device_id", DeviceUtil.getDeviceId(SheepApp.getInstance()));
+                loadUrl = StringUtils.addUrlQuery(url, webParams.getTokenKey(), SpUtils.getToken(SheepApp.getInstance()));
+                loadUrl = StringUtils.addUrlQuery(loadUrl, "pf", Config.YF_SHOP_PLATFORM);
+                loadUrl = StringUtils.addUrlQuery(loadUrl, "device_id", DeviceUtil.getDeviceId(SheepApp.getInstance()));
             }
             if (!loadUrl.contains(webParams.getInvitationCodeKey())) {
-                loadUrl = addUrlQuery(loadUrl, webParams.getInvitationCodeKey(), DataUtil.getInstance().getInvitationCode());
+                loadUrl = StringUtils.addUrlQuery(loadUrl, webParams.getInvitationCodeKey(), DataUtil.getInstance().getInvitationCode());
             }
             LogUtil.println("ActWebX5 loadUrl = " + loadUrl);
             webViewLoadUrl(mWebView, loadUrl);
@@ -472,7 +444,6 @@ public class FgtWebX5 extends BaseFgtWebX5 {
     //createImageFileInSdcard
     @SuppressLint("SdCardPath")
     private File createImageFile() {
-        //mCameraPhotoPath="/mnt/sdcard/tmp.png";
         File file = new File(Environment.getExternalStorageDirectory() + "/", "tmp.png");
         mCameraPhotoPath = file.getAbsolutePath();
         if (!file.exists()) {
@@ -616,7 +587,8 @@ public class FgtWebX5 extends BaseFgtWebX5 {
             int yy = WidgetUtil.Px2Dp(getContext(), y);
             switch (event.getAction()) {
                 case MotionEvent.ACTION_DOWN:
-                    if (yy < height) {
+//                    if (yy < height) {
+                    if (height > 0) {
                         mWebView.requestDisallowInterceptTouchEvent(true);
                     } else {
                         mWebView.requestDisallowInterceptTouchEvent(false);
@@ -640,4 +612,22 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         loadJs(callback + "(" + data + ")");
     }
 
+    public void setCookies(String host, Map<String, String> params) {
+        CookieSyncManager.createInstance(getContext());
+        CookieManager cookieManager = CookieManager.getInstance();
+        cookieManager.setAcceptCookie(true);
+        String cookies = cookieManager.getCookie(host);
+        Map<String, String> cookieMap = StringUtils.string2Map(cookies, ";", "=");
+        StringUtils.mergeMap(cookieMap, params);
+        cookieMap.put("Domain", host);
+        cookieMap.put("Path", "/");
+        cookieMap.put("Expires", DateUtil.getTimeEn(System.currentTimeMillis() + 3000_000, "EEE, dd MMM yyyy HH:mm:ss") + " GMT");
+        cookieMap.put("MaxAge", "3000");
+        for (String key : cookieMap.keySet()) {
+            cookieManager.setCookie(host, key + "=" + cookieMap.get(key));
+        }
+        cookieManager.flush();
+        CookieSyncManager.createInstance(getContext()).sync();
+    }
+
 }

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

@@ -1063,7 +1063,19 @@ public class Jump2View {
      * @param jumpWeb
      */
     public void goWeb(Context context, IJumpWeb jumpWeb) {
-        goWeb(context, new WebParams(jumpWeb.getUrl(), jumpWeb.getTitle()).setNeedJsInteract(jumpWeb.needJsInteract()));
+        WebParams wp = new WebParams(jumpWeb.getUrl(), jumpWeb.getTitle());
+        wp.setNeedJsInteract(jumpWeb.needJsInteract());
+        if (jumpWeb.needJsInteract() && !TextUtils.isEmpty(jumpWeb.getJsUrl())) {
+            wp.setJsUrl(jumpWeb.getJsUrl());
+        }
+        goWeb(context, wp);
+    }
+
+    public void goH5Game(Context context, String url) {
+        WebParams wp = new WebParams(url, "游戏");
+        wp.setNeedJsInteract(true);
+        wp.setJsUrl(Config.SMALL_STATION_URL + Config.PATH_H5GAME_BRIDGE_JS);
+        Jump2View.getInstance().goWeb(context, wp, true);
     }
 
     /**

+ 39 - 0
app/src/main/java/com/sheep/gamegroup/util/StringUtils.java

@@ -9,6 +9,7 @@ import android.util.Patterns;
 
 import com.lqr.emoji.EmotionLayout;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -19,6 +20,7 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
+import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
@@ -473,4 +475,41 @@ public class StringUtils {
         }
         return true;
     }
+
+    public static String addUrlToken(String url) {
+        return StringUtils.addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
+    }
+
+    public static String addUrlQuery(String url, String key, String value) {
+        if (url.contains("?" + key + "=") || url.contains("#" + key + "=") || url.contains("&" + key + "=")) {
+            return url;
+        }
+        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
+    }
+
+    public static String map2String(Map map, String split, String split2) {
+        String result = "";
+        for (Object key : map.keySet()) {
+            result += key.toString() + split2 + map.get(key).toString() + split;
+        }
+        return result;
+    }
+
+    public static Map<String, String> string2Map(String text, String split, String split2) {
+        Map<String, String> params = new HashMap<>();
+        if (!TextUtils.isEmpty(text)) {
+            String[] kvs = text.split(split);
+            for (String kv : kvs) {
+                String[] temp = kv.split(split2);
+                params.put(temp[0].trim(), temp[1].trim());
+            }
+        }
+        return params;
+    }
+
+    public static void mergeMap(Map<String, String> master, Map<String, String> slave) {
+        for (String key : slave.keySet()) {
+            master.put(key, slave.get(key));
+        }
+    }
 }

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

@@ -49,7 +49,6 @@ import com.sheep.gamegroup.module.plugin.util.SheepPluginUtil;
 import com.sheep.gamegroup.module.skin.util.SkinUtil;
 import com.sheep.gamegroup.module.yf_shop.model.ReceiveCouponsCheckResq;
 import com.sheep.gamegroup.usage.AppUsageManager;
-import com.sheep.gamegroup.util.js.BaseActWebX5;
 import com.sheep.gamegroup.util.share.ShareLinkConfig;
 import com.sheep.gamegroup.view.activity.ActInstallApkList;
 import com.sheep.gamegroup.view.activity.ActMain;
@@ -290,10 +289,13 @@ public class TestUtil {
             return;
         }
         switch (item) {
-            case "协议跳转":
-                Log.i("adf","1");
-                activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("sheep://small.kfzs.com/xmy?type=jss&data=83916b18ed049cbcd82f1056c1a72fdd9c7182611f8a41a0670018a16f869fa7a92b7de12c1c0602")));
+            case "协议跳转": {
+//                activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("sheep://small.kfzs.com/xmy?type=jss&data=83916b18ed049cbcd82f1056c1a72fdd9c7182611f8a41a0670018a16f869fa7a92b7de12c1c0602")));
+                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sheep://small.kfzs.com/xmy?type=h5game&data=http://10.8.240.193:8082?ssnocache=1"));
+                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                activity.startActivity(intent);
                 break;
+            }
             case "测试跳转":
                 testSkip(activity);
                 break;
@@ -514,7 +516,7 @@ public class TestUtil {
                 break;
             case "测试内部h5": {
 //                Jump2View.getInstance().goWeb(activity, StringUtils.getCopyText().toString(), "小绵羊官网");
-                String url = "http://10.8.240.193:8082/#/game-center?pf=android.sheep.app&device_id=e90a3bf5f9cfd223";
+                String url = "http://10.8.240.193:8082/?nocache=1";
 //                String url = Config.getUrlByPath(Config.PATH_DIRECTIONAL_PAY + "?authorization=64239@e90a3bf5f9cfd223@d01420837e0fefd74c4ab9374a201bd8&order=6557891279164801024&ssnocache=1");
                 Jump2View.getInstance().goWeb(activity, url, "玩转游戏");
             }
@@ -922,7 +924,7 @@ public class TestUtil {
         CommonUtil.getInstance().initUrlConfigByNet(name, new Action1<String>() {
             @Override
             public void call(String url) {
-                StringUtils.CopyText(BaseActWebX5.addUrlToken(url));
+                StringUtils.CopyText(StringUtils.addUrlToken(url));
             }
         });
     }

+ 0 - 294
app/src/main/java/com/sheep/gamegroup/util/js/BaseActWeb.java

@@ -1,294 +0,0 @@
-package com.sheep.gamegroup.util.js;
-
-import android.text.TextUtils;
-import android.view.View;
-import android.webkit.WebView;
-
-import com.kfzs.duanduan.utils.ApkUtils;
-import com.liulishuo.okdownload.DownloadTask;
-import com.liulishuo.okdownload.OkDownload;
-import com.liulishuo.okdownload.StatusUtil;
-import com.sheep.gamegroup.absBase.BaseUMActivity;
-import com.sheep.gamegroup.event.BigEvent;
-import com.sheep.gamegroup.event.EventTypes;
-import com.sheep.gamegroup.greendao.download.DownLoadInfo;
-import com.sheep.gamegroup.helper.DownloadHelper;
-import com.sheep.gamegroup.model.api.IWeb;
-import com.sheep.gamegroup.model.entity.TaskEty;
-import com.sheep.gamegroup.model.entity.UserEntity;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DownloadUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.util.TestUtil;
-import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.util.share.ShareLinkConfig;
-import com.sheep.gamegroup.view.activity.TaskDetailAct;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-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.tencent.mm.opensdk.constants.ConstantsAPI;
-import com.tencent.mm.opensdk.modelpay.PayResp;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.Locale;
-import java.util.Map;
-
-import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
-import rx.functions.Action1;
-
-/**
- * Created by realicing on 2018/11/23.
- * realicing@sina.com
- */
-public abstract class BaseActWeb extends BaseUMActivity implements IWeb {
-
-    public void superFinish(){
-        super.finish();
-    }
-
-
-    public static String addUrlToken(String url) {
-        return addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
-    }
-
-    public static String addUrlQuery(String url, String key, String value) {
-        if(url.contains("?"+key+"=") || url.contains("#"+key+"=") || url.contains("&"+key+"=")){
-            return url;
-        }
-        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
-    }
-    public void setH5Type(String h5Type) {
-        switch (h5Type){
-            case "is_unicom":
-                TitleBarUtils
-                        .getInstance()
-                        .setRightImgBotton(this, R.mipmap.share, new View.OnClickListener() {
-                            @Override
-                            public void onClick(View view) {
-                                CommonUtil.getInstance().callActionWithUserInfo(new Action1<UserEntity>() {
-                                    @Override
-                                    public void call(UserEntity userEntity) {
-                                        if (userEntity == null) {
-                                            G.showToast("分享功能调试中");
-                                            return;
-                                        }
-//                                是否是联通卡分享 1:是 0:不是
-//                                分享链接需要加个 is_unicom  参数
-                                        String url = addUrlQuery(userEntity.getShareLink(), "is_unicom", "1");
-                                        new ShareLinkConfig().setLink(url).setTitle("下载小绵羊,免费领取联通大/小天神卡").toShare(BaseActWeb.this);
-                                    }
-                                });
-                            }
-                        });
-                break;
-        }
-    }
-    @Override
-    public void onStart(SHARE_MEDIA share_media) {
-        //开始分享
-        loadJs(String.format(Locale.CHINA, "callback(\"onStart\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onResult(SHARE_MEDIA share_media) {
-        //分享成功 微信分享时,取消也会成功
-        loadJs(String.format(Locale.CHINA, "callback(\"onResult\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onError(SHARE_MEDIA share_media, Throwable throwable) {
-        //分享出错
-        String msg = throwable.getMessage();
-        G.showToast(msg != null && msg.contains("没有安装应用") ? "没有安装应用" : msg);
-        loadJs(String.format(Locale.CHINA, "callback(\"onError\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onCancel(SHARE_MEDIA share_media) {
-        //取消分享 微信分享时,没有取消
-        loadJs(String.format(Locale.CHINA, "callback(\"onCancel\", %s)", share_media.getName()));
-    }
-
-    protected boolean addSheepUserAgent = true;
-//    protected void webViewLoadUrl(com.tencent.smtt.sdk.WebView webView, String url){
-//        if(addSheepUserAgent){
-//            Map<String, String> extraHeaders = new HashMap<>();
-//            extraHeaders.put("User-Agent", getSheepUserAgent());
-//            webViewLoadUrl(webView, extraHeaders, url);
-//        } else {
-//            webView.loadUrl(url);
-//            if(TestUtil.isDev()){
-//                return;
-//            }
-//            WebViewCacheInterceptorInst.getInstance().loadUrl(url, webView.getSettings().getUserAgentString());
-//        }
-//    }
-
-    public static String getSheepUserAgent(){
-        return BuildConfig.APPLICATION_ID + "/" + SysAppUtil.getUserAgent();
-    }
-
-    protected void webViewLoadUrl(WebView webView, Map<String, String> map, String url){
-        webView.loadUrl(url, map);
-        if(TestUtil.isDev()){
-            return;
-        }
-        WebViewCacheInterceptorInst.getInstance().loadUrl(url, map, webView.getSettings().getUserAgentString());
-    }
-    protected void webViewLoadUrl(WebView webView, String url){
-        if(TestUtil.isDev()){
-            webView.loadUrl(url);
-            return;
-        }
-        WebViewCacheInterceptorInst.getInstance().loadUrl(webView,url);
-    }
-
-    @Override
-    protected boolean needRegisterEventBus() {
-        return true;
-    }
-
-    @Subscribe
-    public void onEventMainThread(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));
-    }
-
-    protected TaskEty taskEty;
-
-    public void setTaskEty(TaskEty taskEty) {
-        this.taskEty = taskEty;
-    }
-
-    /**
-     * 主要的事件广播接收更新处理
-     *
-     * @param event
-     */
-    @Subscribe
-    public void onEventMainThread(BigEvent event) {
-        if (taskEty != null && event.getData() instanceof DownLoadInfo) {
-            DownLoadInfo task = (DownLoadInfo) event.getData();
-            if (TextUtils.equals(task.getMDownloadUrl(), taskEty.getDownload_link())) {
-                switch (event.getEventTypes()) {
-                    case DOWNLOAD_RUNNING:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_ING));
-                        try {
-                            String btnText = String.format(Locale.CHINA, "%d%%(%s)", Math.abs(task.getMPercent()), task.getAverageSpeed());//添加下载速度
-                            String progressText = String.format(Locale.CHINA, "%d%%", Math.abs(task.getMPercent()));//添加下载速度简单版本
-                            loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", btnText));
-                            loadJs(String.format(Locale.CHINA, "onUpdateDownloadProgress('%s')", progressText));
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                        break;
-                    case DOWNLOAD_STOP:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_PAUSE));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.CONTINUE_DOWNLOAD));
-                        break;
-                    case DOWNLOAD_COMPLETE:
-                        //在这里处理任务完成的状态
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.START_INSTALL));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_FINISH));
-                        updateDownloadBtn();
-                        break;
-                    case DOWNLOAD_CANCEL:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_DELETE));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", "已经取消"));
-                        break;
-                    case DOWNLOAD_FAIL:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_FAIL));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.FAIL_DOWNLOAD));
-                        break;
-                }
-            }
-        }
-    }
-
-    private DownloadUtil downloadUtil;
-    public void updateDownloadBtn() {
-        if (taskEty != null) {
-            if (downloadUtil == null)
-                downloadUtil = new DownloadUtil();
-            DownloadHelper.setBtnStr(taskEty, downloadUtil, object -> runOnUiThread(() -> {
-                if (object instanceof Integer) {
-                    type = (int) object;
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", (int) object));
-                } else if (object instanceof String) {
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", (String) object));
-                } else if (object instanceof Boolean) {
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnEnable(%b)", (boolean) object));
-                }
-            }));
-        }
-    }
-    private int type = DownloadUtil.STATUS_INIT;
-    public void onClickDownloadBtn(){
-        switch (type){
-            case DownloadUtil.STATUS_INIT://开始下载
-            default:
-                downloadApk();
-                break;
-            case DownloadUtil.STATUS_FINISH:
-                ApkUtils.installApk(SheepApp.getInstance(), PackageUtil.isExistsFile(taskEty.getPackage_names(), taskEty.getDownload_link()));
-                break;
-            case DownloadUtil.STATUS_INSTALLED:
-                PackageUtil.startApp(SheepApp.getInstance(), taskEty.getPackage_names());
-                break;
-        }
-    }
-    public void downloadApk(){
-        if (taskEty != null) {
-            if (downloadUtil == null)
-                downloadUtil = new DownloadUtil();
-
-            final DownloadTask task;
-            if (TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")) {
-                G.showToast(R.string.error_download_link);
-                return;
-            }
-            task = DownloadUtil.getTask(taskEty);
-            final StatusUtil.Status statusOnStore = StatusUtil.getStatus(task);
-            final DownLoadInfo downLoadInfo = downloadUtil.getDownloadTaskByUrl(taskEty);
-            switch (statusOnStore) {
-                case RUNNING:
-                case PENDING://等待的
-                    OkDownload.with().downloadDispatcher().cancel(task);
-                    break;
-                case IDLE://空闲的
-                case UNKNOWN:
-                    downloadUtil.start(downLoadInfo);
-                    break;
-                case COMPLETED://有可能之前已经下载完成,但是数据库里已经没有数据了,这时只需要修改状态
-                    if (task.getFile() != null) {
-                        if (downloadUtil.checkFinish(downLoadInfo)) {//检查文件是否真的完成
-                            downloadUtil.setDownloadTaskFinish(task.getUrl(), task.getFile().getAbsolutePath());
-                        } else {//重新开始下载
-                            downloadUtil.delete(downLoadInfo);
-                            downloadUtil.start(downloadUtil.getDownloadTaskByUrl(taskEty));
-                            downloadUtil.setDownloadTaskStatus(taskEty.getDownload_link(), DownloadUtil.STATUS_INIT);
-                        }
-                    }
-                    updateDownloadBtn();
-                    break;
-            }
-            new Thread(() -> {
-                if (downloadUtil.addDownloadTask(downLoadInfo)) {
-                    //发送红点信息
-                    EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
-                }
-            }).start();
-            UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
-        }
-    }
-}

+ 0 - 295
app/src/main/java/com/sheep/gamegroup/util/js/BaseActWebX5.java

@@ -1,295 +0,0 @@
-package com.sheep.gamegroup.util.js;
-
-import android.text.TextUtils;
-import android.view.View;
-import android.webkit.WebView;
-
-import com.kfzs.duanduan.utils.ApkUtils;
-import com.liulishuo.okdownload.DownloadTask;
-import com.liulishuo.okdownload.OkDownload;
-import com.liulishuo.okdownload.StatusUtil;
-import com.sheep.gamegroup.absBase.BaseUMActivity;
-import com.sheep.gamegroup.event.BigEvent;
-import com.sheep.gamegroup.event.EventTypes;
-import com.sheep.gamegroup.greendao.download.DownLoadInfo;
-import com.sheep.gamegroup.helper.DownloadHelper;
-import com.sheep.gamegroup.model.api.IWeb;
-import com.sheep.gamegroup.model.entity.TaskEty;
-import com.sheep.gamegroup.model.entity.UserEntity;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DownloadUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.util.TestUtil;
-import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.util.share.ShareLinkConfig;
-import com.sheep.gamegroup.view.activity.TaskDetailAct;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-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.tencent.mm.opensdk.constants.ConstantsAPI;
-import com.tencent.mm.opensdk.modelpay.PayResp;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
-import rx.functions.Action1;
-
-/**
- * Created by realicing on 2018/11/23.
- * realicing@sina.com
- */
-public abstract class BaseActWebX5 extends BaseUMActivity implements IWeb {
-
-    public void superFinish(){
-        super.finish();
-    }
-
-
-    public static String addUrlToken(String url) {
-        return addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
-    }
-
-    public static String addUrlQuery(String url, String key, String value) {
-        if(url.contains("?"+key+"=") || url.contains("#"+key+"=") || url.contains("&"+key+"=")){
-            return url;
-        }
-        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
-    }
-    public void setH5Type(String h5Type) {
-        switch (h5Type){
-            case "is_unicom":
-                TitleBarUtils
-                        .getInstance()
-                        .setRightImgBotton(this, R.mipmap.share, new View.OnClickListener() {
-                            @Override
-                            public void onClick(View view) {
-                                CommonUtil.getInstance().callActionWithUserInfo(new Action1<UserEntity>() {
-                                    @Override
-                                    public void call(UserEntity userEntity) {
-                                        if (userEntity == null) {
-                                            G.showToast("分享功能调试中");
-                                            return;
-                                        }
-//                                是否是联通卡分享 1:是 0:不是
-//                                分享链接需要加个 is_unicom  参数
-                                        String url = addUrlQuery(userEntity.getShareLink(), "is_unicom", "1");
-                                        new ShareLinkConfig().setLink(url).setTitle("下载小绵羊,免费领取联通大/小天神卡").toShare(BaseActWebX5.this);
-                                    }
-                                });
-                            }
-                        });
-                break;
-        }
-    }
-    @Override
-    public void onStart(SHARE_MEDIA share_media) {
-        //开始分享
-        loadJs(String.format(Locale.CHINA, "callback(\"onStart\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onResult(SHARE_MEDIA share_media) {
-        //分享成功 微信分享时,取消也会成功
-        loadJs(String.format(Locale.CHINA, "callback(\"onResult\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onError(SHARE_MEDIA share_media, Throwable throwable) {
-        //分享出错
-        String msg = throwable.getMessage();
-        G.showToast(msg != null && msg.contains("没有安装应用") ? "没有安装应用" : msg);
-        loadJs(String.format(Locale.CHINA, "callback(\"onError\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onCancel(SHARE_MEDIA share_media) {
-        //取消分享 微信分享时,没有取消
-        loadJs(String.format(Locale.CHINA, "callback(\"onCancel\", %s)", share_media.getName()));
-    }
-
-    protected boolean addSheepUserAgent = true;
-    protected void webViewLoadUrl(com.tencent.smtt.sdk.WebView webView, String url){
-        if(addSheepUserAgent){
-            Map<String, String> extraHeaders = new HashMap<>();
-            extraHeaders.put("User-Agent", getSheepUserAgent());
-            webViewLoadUrl(webView, extraHeaders, url);
-        } else {
-            webView.loadUrl(url);
-            if(TestUtil.isDev()){
-                return;
-            }
-            WebViewCacheInterceptorInst.getInstance().loadUrl(url, webView.getSettings().getUserAgentString());
-        }
-    }
-
-    public static String getSheepUserAgent(){
-        return BuildConfig.APPLICATION_ID + "/" + SysAppUtil.getUserAgent();
-    }
-
-    protected void webViewLoadUrl(com.tencent.smtt.sdk.WebView webView, Map<String, String> map, String url){
-        webView.loadUrl(url, map);
-        if(TestUtil.isDev()){
-            return;
-        }
-        WebViewCacheInterceptorInst.getInstance().loadUrl(url, map, webView.getSettings().getUserAgentString());
-    }
-    protected void webViewLoadUrl(WebView webView, String url){
-        if(TestUtil.isDev()){
-            webView.loadUrl(url);
-            return;
-        }
-        WebViewCacheInterceptorInst.getInstance().loadUrl(webView,url);
-    }
-
-    @Override
-    protected boolean needRegisterEventBus() {
-        return true;
-    }
-
-    @Subscribe
-    public void onEventMainThread(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));
-    }
-
-    protected TaskEty taskEty;
-
-    public void setTaskEty(TaskEty taskEty) {
-        this.taskEty = taskEty;
-    }
-
-    /**
-     * 主要的事件广播接收更新处理
-     *
-     * @param event
-     */
-    @Subscribe
-    public void onEventMainThread(BigEvent event) {
-        if (taskEty != null && event.getData() instanceof DownLoadInfo) {
-            DownLoadInfo task = (DownLoadInfo) event.getData();
-            if (TextUtils.equals(task.getMDownloadUrl(), taskEty.getDownload_link())) {
-                switch (event.getEventTypes()) {
-                    case DOWNLOAD_RUNNING:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_ING));
-                        try {
-                            String btnText = String.format(Locale.CHINA, "%d%%(%s)", Math.abs(task.getMPercent()), task.getAverageSpeed());//添加下载速度
-                            String progressText = String.format(Locale.CHINA, "%d%%", Math.abs(task.getMPercent()));//添加下载速度简单版本
-                            loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", btnText));
-                            loadJs(String.format(Locale.CHINA, "onUpdateDownloadProgress('%s')", progressText));
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                        break;
-                    case DOWNLOAD_STOP:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_PAUSE));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.CONTINUE_DOWNLOAD));
-                        break;
-                    case DOWNLOAD_COMPLETE:
-                        //在这里处理任务完成的状态
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.START_INSTALL));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_FINISH));
-                        updateDownloadBtn();
-                        break;
-                    case DOWNLOAD_CANCEL:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_DELETE));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", "已经取消"));
-                        break;
-                    case DOWNLOAD_FAIL:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_FAIL));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.FAIL_DOWNLOAD));
-                        break;
-                }
-            }
-        }
-    }
-
-    private DownloadUtil downloadUtil;
-    public void updateDownloadBtn() {
-        if (taskEty != null) {
-            if (downloadUtil == null)
-                downloadUtil = new DownloadUtil();
-            DownloadHelper.setBtnStr(taskEty, downloadUtil, object -> runOnUiThread(() -> {
-                if (object instanceof Integer) {
-                    type = (int) object;
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", (int) object));
-                } else if (object instanceof String) {
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", (String) object));
-                } else if (object instanceof Boolean) {
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnEnable(%b)", (boolean) object));
-                }
-            }));
-        }
-    }
-    private int type = DownloadUtil.STATUS_INIT;
-    public void onClickDownloadBtn(){
-        switch (type){
-            case DownloadUtil.STATUS_INIT://开始下载
-            default:
-                downloadApk();
-                break;
-            case DownloadUtil.STATUS_FINISH:
-                ApkUtils.installApk(SheepApp.getInstance(), PackageUtil.isExistsFile(taskEty.getPackage_names(), taskEty.getDownload_link()));
-                break;
-            case DownloadUtil.STATUS_INSTALLED:
-                PackageUtil.startApp(SheepApp.getInstance(), taskEty.getPackage_names());
-                break;
-        }
-    }
-    public void downloadApk(){
-        if (taskEty != null) {
-            if (downloadUtil == null)
-                downloadUtil = new DownloadUtil();
-
-            final DownloadTask task;
-            if (TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")) {
-                G.showToast(R.string.error_download_link);
-                return;
-            }
-            task = DownloadUtil.getTask(taskEty);
-            final StatusUtil.Status statusOnStore = StatusUtil.getStatus(task);
-            final DownLoadInfo downLoadInfo = downloadUtil.getDownloadTaskByUrl(taskEty);
-            switch (statusOnStore) {
-                case RUNNING:
-                case PENDING://等待的
-                    OkDownload.with().downloadDispatcher().cancel(task);
-                    break;
-                case IDLE://空闲的
-                case UNKNOWN:
-                    downloadUtil.start(downLoadInfo);
-                    break;
-                case COMPLETED://有可能之前已经下载完成,但是数据库里已经没有数据了,这时只需要修改状态
-                    if (task.getFile() != null) {
-                        if (downloadUtil.checkFinish(downLoadInfo)) {//检查文件是否真的完成
-                            downloadUtil.setDownloadTaskFinish(task.getUrl(), task.getFile().getAbsolutePath());
-                        } else {//重新开始下载
-                            downloadUtil.delete(downLoadInfo);
-                            downloadUtil.start(downloadUtil.getDownloadTaskByUrl(taskEty));
-                            downloadUtil.setDownloadTaskStatus(taskEty.getDownload_link(), DownloadUtil.STATUS_INIT);
-                        }
-                    }
-                    updateDownloadBtn();
-                    break;
-            }
-            new Thread(() -> {
-                if (downloadUtil.addDownloadTask(downLoadInfo)) {
-                    //发送红点信息
-                    EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
-                }
-            }).start();
-            UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
-        }
-    }
-}

+ 99 - 0
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -4,11 +4,14 @@ import android.Manifest;
 import android.app.Activity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.net.Uri;
 import android.provider.MediaStore;
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.View;
+import android.webkit.CookieSyncManager;
 import android.webkit.JavascriptInterface;
 
 import com.alibaba.fastjson.JSON;
@@ -21,8 +24,10 @@ import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.GameListType;
 import com.sheep.gamegroup.model.entity.Release_task;
 import com.sheep.gamegroup.model.entity.TaskEty;
+import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.find.activity.ActFind;
+import com.sheep.gamegroup.module.login.fragments.AbsLoginFgt;
 import com.sheep.gamegroup.module.pay.activity.ActPayPassword;
 import com.sheep.gamegroup.module.user.activity.ActVip;
 import com.sheep.gamegroup.module.user.model.BuyVipReq;
@@ -47,6 +52,7 @@ import com.sheep.gamegroup.view.activity.ActInvitation;
 import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.activity.ChangeWxOrTelAct;
 import com.sheep.gamegroup.view.activity.RealNameAuthenAct;
+import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.bean.UserCenterModule;
@@ -54,11 +60,20 @@ 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.tencent.smtt.sdk.CookieManager;
+import com.umeng.socialize.ShareAction;
+import com.umeng.socialize.UMAuthListener;
+import com.umeng.socialize.UMShareAPI;
+import com.umeng.socialize.UMShareListener;
+import com.umeng.socialize.bean.SHARE_MEDIA;
+import com.umeng.socialize.media.UMImage;
 
 import org.greenrobot.eventbus.EventBus;
 
 import java.net.URI;
+import java.util.HashMap;
 import java.util.Locale;
+import java.util.Map;
 
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
@@ -145,6 +160,11 @@ public class KFZSJs {
     }
 
     @JavascriptInterface
+    public void gotoH5Game(String url) {
+        Jump2View.getInstance().goH5Game(activity, url);
+    }
+
+    @JavascriptInterface
     public void gotoRecharge() {
         gotoRecharge(false);
     }
@@ -598,4 +618,83 @@ public class KFZSJs {
         UserCenterModule module = JSONObject.parseObject(jsonStr, UserCenterModule.class);
         CommonUtil.getInstance().goNative(activity, module, "个人中心");
     }
+
+    @JavascriptInterface
+    public void shareThirdPartApp(int type, String title, String desc, String url, String img) {
+        String shareType = null;
+        switch (type) {
+            case 0:
+                shareType = ShareLinkConfig.QQ;
+                break;
+            case 1:
+                shareType = ShareLinkConfig.QZONE;
+                break;
+            case 2:
+                shareType = ShareLinkConfig.WX;
+                break;
+            case 3:
+                shareType = ShareLinkConfig.WEIXIN_CIRCLE;
+                break;
+            default:
+                return;
+        }
+        new ShareLinkConfig().setShareType(shareType).setTitle(title).setDes(desc).setIconUrl(img).setLink(url).toShare(activity, new UMShareListener() {
+            @Override
+            public void onStart(SHARE_MEDIA share_media) {
+
+            }
+
+            @Override
+            public void onResult(SHARE_MEDIA share_media) {
+                iWeb.loadJs("handleShare(0)");
+            }
+
+            @Override
+            public void onError(SHARE_MEDIA share_media, Throwable throwable) {
+                iWeb.loadJs("handleShare(1)");
+            }
+
+            @Override
+            public void onCancel(SHARE_MEDIA share_media) {
+                iWeb.loadJs("handleShare(2)");
+            }
+        });
+    }
+
+    @JavascriptInterface
+    public void loginThirdPartApp(String type) {
+        UMShareAPI.get(SheepApp.getInstance()).doOauthVerify(activity,
+                "wx".equals(type) ? SHARE_MEDIA.WEIXIN : SHARE_MEDIA.QQ,
+                new UMAuthListener() {
+                    @Override
+                    public void onStart(SHARE_MEDIA share_media) {
+
+                    }
+
+                    @Override
+                    public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
+                        Uri uri = Uri.parse(iWeb.getWebUrl());
+                        String host = uri.getHost();
+                        CookieManager cookieManager = CookieManager.getInstance();
+                        Map<String, String> params = new HashMap<>();
+                        params.put("access_token", map.get("access_token"));
+                        params.put("openid", map.get("openid"));
+                        params.put("account_type", type);
+                        params.put("app_id", "wx".equals(type) ? Config.WX_AUTH_APP_ID : Config.QQ_APP_ID);
+                        iWeb.setCookies(host, params);
+                        iWeb.loadJs("handleLogin(1)");
+                    }
+
+                    @Override
+                    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
+                        G.shortToast(("wx".equals(type) ? "微信" : "QQ") + "授权失败");
+                        iWeb.loadJs("handleLogin(2)");
+                    }
+
+                    @Override
+                    public void onCancel(SHARE_MEDIA share_media, int i) {
+                        iWeb.loadJs("handleLogin(3)");
+                    }
+                });
+    }
 }

+ 4 - 5
app/src/main/java/com/sheep/gamegroup/util/share/ShareLinkConfig.java

@@ -24,7 +24,6 @@ import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.ZipChannelUtil;
-import com.sheep.gamegroup.util.js.BaseActWebX5;
 import com.sheep.gamegroup.util.viewHelper.CacheImageUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -420,14 +419,14 @@ public class ShareLinkConfig {
         switch (type) {
             case ShareLinkConfig.WX:
             case ShareLinkConfig.WEIXIN_CIRCLE:
-                return BaseActWebX5.addUrlQuery(url,"type","1");
+                return StringUtils.addUrlQuery(url,"type","1");
             case ShareLinkConfig.QQ:
             case ShareLinkConfig.QZONE:
-                return BaseActWebX5.addUrlQuery(url,"type","2");
+                return StringUtils.addUrlQuery(url,"type","2");
             case ShareLinkConfig.FACE_TO_FACE:
-                return BaseActWebX5.addUrlQuery(url, "type", "4");
+                return StringUtils.addUrlQuery(url, "type", "4");
             default:
-                return BaseActWebX5.addUrlQuery(url,"type","5");
+                return StringUtils.addUrlQuery(url,"type","5");
         }
     }
     public final static String FACE_TO_FACE = "face_to_face";

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/ActInvitation.java

@@ -43,10 +43,10 @@ import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewHolder;
 import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.util.js.BaseActWebX5;
 import com.sheep.gamegroup.util.share.ShareLinkConfig;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
 import com.sheep.gamegroup.view.adapter.ArrayPagerAdapter;
@@ -343,7 +343,7 @@ public class ActInvitation extends BaseUMActivity {
                     float radius = 4 / 216F;
                     float topRadius = 2 / 216F;
                     float logoRadius = rqRadius * 16 / 68;
-                    GlideImageLoader.saveAndSetRqImage(image_bottom, TestUtil.isSheep() ? item.getLink() : BaseActWebX5.addUrlQuery(userEntity.getShareLink(), "flag", item.getFlag()), 400, new RequestOptions().disallowHardwareConfig().override((int) (imgWidth * rqRadius)));
+                    GlideImageLoader.saveAndSetRqImage(image_bottom, TestUtil.isSheep() ? item.getLink() : StringUtils.addUrlQuery(userEntity.getShareLink(), "flag", item.getFlag()), 400, new RequestOptions().disallowHardwareConfig().override((int) (imgWidth * rqRadius)));
                     //重新设置logo的宽高
                     ViewGroup.LayoutParams layoutParams = image_logo.getLayoutParams();
                     layoutParams.width = (int) (imgWidth * logoRadius);

+ 6 - 61
app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java

@@ -1,75 +1,15 @@
 package com.sheep.gamegroup.view.activity;
 
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.content.DialogInterface;
 import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Environment;
-import android.provider.MediaStore;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
 import android.support.v4.app.Fragment;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.text.TextUtils;
-import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.widget.ImageView;
-import android.widget.ProgressBar;
 
 import com.sheep.gamegroup.absBase.BaseContainerActivity;
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.module.webview.fragment.FgtWeb;
 import com.sheep.gamegroup.module.webview.fragment.FgtWebX5;
-import com.sheep.gamegroup.module.webview.util.WebResourceRequestAdapter;
-import com.sheep.gamegroup.module.webview.util.WebResourceResponseAdapter;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.Constant;
-import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.DeviceUtil;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.LogUtil;
-import com.sheep.gamegroup.util.NetUtil;
-import com.sheep.gamegroup.util.StringUtils;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.util.TestUtil;
-import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.util.js.BaseActWebX5;
-import com.sheep.gamegroup.util.js.KFZSJs;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
-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.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.snail.antifake.jni.EmulatorDetectUtil;
-import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
-import com.tencent.smtt.export.external.interfaces.WebResourceResponse;
-import com.tencent.smtt.sdk.ValueCallback;
-import com.tencent.smtt.sdk.WebChromeClient;
-import com.tencent.smtt.sdk.WebSettings;
-import com.tencent.smtt.sdk.WebView;
-import com.tencent.smtt.sdk.WebViewClient;
-import com.yalantis.ucrop.util.FileUtils;
-import com.zhy.http.okhttp.OkHttpUtils;
-import com.zhy.http.okhttp.callback.StringCallback;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import butterknife.BindView;
-import okhttp3.Call;
-import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
-
+import com.umeng.socialize.UMShareAPI;
 
 /**
  * web页面--含有所有js及url后添加authorization
@@ -118,6 +58,11 @@ public class ActWebX5 extends BaseContainerActivity {
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         fragment.onActivityResult(requestCode, resultCode, data);
+        try {
+            UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
 }

+ 7 - 25
app/src/main/java/com/sheep/gamegroup/view/activity/MiddleSchemeAct.java

@@ -81,7 +81,10 @@ public class MiddleSchemeAct extends Activity {
             return;
         }
         //尝试解密数据
-        String json = BaseMessageConverter.decrypt(uri.getQueryParameter("data"));
+        String json = uri.getQueryParameter("data");
+        if (!type.equals("h5game")) {
+            json = BaseMessageConverter.decrypt(json);
+        }
         switch (type) {
             default://尝试获取game_id
                 tryGoSplashAct(context, uri);
@@ -186,31 +189,10 @@ public class MiddleSchemeAct extends Activity {
                 int min = NumberFormatUtils.parseInteger(uri.getQueryParameter("min"), 5);
                 SysAppUtil.startAlermApp(context, context.getString(R.string.smallsheep_checkin_task), hour, min);
                 break;
+            case "h5game":
+                Jump2View.getInstance().goH5Game(SheepApp.getInstance(), json);
+                break;
         }
-//                    LogUtil.println("ActMain", "checkScheme","url: " + url);
-//                    // scheme部分
-//                    String scheme = uri.getScheme();
-//                    LogUtil.println("ActMain", "checkScheme","scheme: " + scheme);
-//                    // host部分
-//                    String host = uri.getHost();
-//                    LogUtil.println("ActMain", "checkScheme","host: " + host);
-//                    //port部分
-//                    int port = uri.getPort();
-//                    LogUtil.println("ActMain", "checkScheme","port: " + port);
-//                    // 访问路劲
-//                    String path = uri.getPath();
-//                    LogUtil.println("ActMain", "checkScheme","path: " + path);
-//                    List<String> pathSegments = uri.getPathSegments();
-//                    LogUtil.println("ActMain", "checkScheme","pathSegments:", JSON.toJSONString(pathSegments));
-//                    // Query部分
-//                    String query = uri.getQuery();
-//                    LogUtil.println("ActMain", "checkScheme","query: " + query);
-//                    //获取指定参数值
-//                    String code = uri.getQueryParameter("code");
-//                    LogUtil.println("ActMain", "checkScheme","code: " + code);
-//                    if(TextUtils.equals(code, "0")){
-//                        finish();
-//                    }
     }
 
     public static void runApp(Context context, String packageName, String className) {

+ 4 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/Config.java

@@ -94,6 +94,7 @@ public class Config {
     //邀请赚钱主页
     public static final String PATH_SMALL_SHEEP_INVITATION_HOME = STATION_SMALL_SHEEP_INVITATION + "/home-page";
     public static final String NAME_WELFARE_MONEY_REWARD_LIST = "赏金任务";
+    public static final String PATH_H5GAME_BRIDGE_JS = "/small_sheep_h5game_plugin/bridge.js";
     //small_station地址 key
     public static final String KEY_SMALL_STATION_URL = "small_station_url";
     //small_station地址
@@ -126,6 +127,9 @@ public class Config {
     //微信支付app_id
     public static final String WX_PAY_APP_ID = "wx427e8e74e8dd27a6";
 
+    public static final String WX_AUTH_APP_ID = "wx2be7f59bb7bb963f";
+    public static final String QQ_APP_ID = "101461115";
+
 
     //缓存数据的key
     public static final String KEY_ENABLE_CHECK_COPY_TEXT = "enable_check_copy_text";//是否开启粘贴板助手的key boolean

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

@@ -159,11 +159,11 @@ public class SheepApp extends MultiDexApplication {
             boolean isNotSupport = Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR1;
             ContextHolder.setContext(this);
             connectAddress = ConnectAddress.sheep.getDefaultConnectAddress();
-            if(!isNotSupport) {
+            if (!isNotSupport) {
                 registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
             }
             initNet();
-            if(isNotSupport){
+            if (isNotSupport) {
                 return;
             }
             initUtils();
@@ -255,8 +255,8 @@ public class SheepApp extends MultiDexApplication {
         UMConfigure.setLogEnabled(true);
         UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "5ab0a1da8f4a9d742900035f");
 //        UMShareAPI.get(this);
-        PlatformConfig.setWeixin("wx2be7f59bb7bb963f", "6cf7ca0f6c6ac97c6961d901fee8adb9");
-        PlatformConfig.setQQZone("101461115", "b874bc950bcf066f17fd52cf2bb959e9");
+        PlatformConfig.setWeixin(Config.WX_AUTH_APP_ID, "6cf7ca0f6c6ac97c6961d901fee8adb9");
+        PlatformConfig.setQQZone(Config.QQ_APP_ID, "b874bc950bcf066f17fd52cf2bb959e9");
 
         //极光推送
         JPushInterface.setDebugMode(org.xutils.BuildConfig.DEBUG);
@@ -508,7 +508,7 @@ public class SheepApp extends MultiDexApplication {
                     CommonUtil.getInstance().checkCopyText();
                     //检查url,实现深度链接
                     Object action = ActionUtil.getInstance().getAction("scheme");
-                    if(action instanceof Uri)
+                    if (action instanceof Uri)
                         MiddleSchemeAct.parseAndJumpUri(activity, (Uri) action);
                 }
             }

+ 12 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java

@@ -1,5 +1,6 @@
 package com.sheep.jiuyan.samllsheep.base;
 
+import android.content.pm.ActivityInfo;
 import android.os.Bundle;
 import android.support.annotation.IdRes;
 import android.support.annotation.Nullable;
@@ -9,6 +10,7 @@ import android.view.View;
 import android.view.ViewGroup;
 
 import com.sheep.gamegroup.absBase.AbsObserver;
+import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.api.BackHandleInterface;
 import com.sheep.gamegroup.util.ActionUtil;
 import com.sheep.gamegroup.util.TestUtil;
@@ -213,4 +215,14 @@ public abstract class BaseFragment extends RxFragment {
         super.onStart();
         backHandleInterface.onSelectedFragment(this);
     }
+
+    public void setLandscape() {
+        getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+    }
+
+    public void setFullScreen() {
+        BaseActivity act = (BaseActivity) getActivity();
+        act.hideSystemNavBar();
+        act.hideSystemStatusBar();
+    }
 }