hanjing 6 rokov pred
rodič
commit
c4e7fa62db

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

@@ -1941,4 +1941,7 @@ public interface ApiService {
     @POST("app/user/check_sms_captcha")
     Observable<BaseMessage> checkSmsCaptcha(@Body JSONObject jsonObject);
 
+    @POST("app/h5game/record")
+    Observable<BaseMessage> recordH5GameAction(@Body JSONObject jsonObject);
+
 }

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

@@ -34,5 +34,7 @@ public interface IWeb {
 
     String getWebUrl();
 
+    String getWebTitle();
+
     void setCookies(String url, Map<String, String> params);
 }

+ 9 - 1
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWeb.java

@@ -159,7 +159,7 @@ public class FgtWeb extends BaseFgtWeb {
                     @Override
                     public void onResponse(String response, int id) {
                         js = response;
-                        if(js.contains("%s%")){
+                        if (js.contains("%s%")) {
                             js = js.replaceAll("%s%", Config.SMALL_STATION_URL + Config.STATION_SMALL_SHEEP_H5GAME);
                         }
                         loadUrl(url);
@@ -172,6 +172,9 @@ public class FgtWeb extends BaseFgtWeb {
     }
 
     public static void initWebViewSettings(WebView webView) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+            WebView.setWebContentsDebuggingEnabled(true);
+        }
         webView.setClickable(true);
         WebSettings webSetting = webView.getSettings();
         webSetting.setJavaScriptEnabled(true);
@@ -617,6 +620,11 @@ public class FgtWeb extends BaseFgtWeb {
         return mWebView.getOriginalUrl();
     }
 
+    @Override
+    public String getWebTitle() {
+        return mWebView.getTitle();
+    }
+
     public void callTransparent(String callback, String data) {
         loadJs(callback + "(" + data + ")");
     }

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

@@ -160,6 +160,7 @@ public class FgtWebX5 extends BaseFgtWebX5 {
     }
 
     public static void initWebViewSettings(WebView webView) {
+        WebView.setWebContentsDebuggingEnabled(true);
         webView.setClickable(true);
         WebSettings webSetting = webView.getSettings();
         webSetting.setJavaScriptEnabled(true);
@@ -607,6 +608,11 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         return mWebView.getOriginalUrl();
     }
 
+    @Override
+    public String getWebTitle() {
+        return mWebView.getTitle();
+    }
+
     public void callTransparent(String callback, String data) {
         loadJs(callback + "(" + data + ")");
     }

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

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

+ 82 - 5
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -45,6 +45,7 @@ import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MainTab;
 import com.sheep.gamegroup.util.QQUtil;
 import com.sheep.gamegroup.util.SMSUtil;
+import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.share.ShareLinkConfig;
@@ -647,6 +648,21 @@ public class KFZSJs {
             @Override
             public void onResult(SHARE_MEDIA share_media) {
                 iWeb.loadJs("handleShare(0)");
+
+                Uri uri = Uri.parse(iWeb.getWebUrl());
+                String host = uri.getHost();
+                String cookies = CookieManager.getInstance().getCookie(host);
+                Map<String, String> cookieMap = StringUtils.string2Map(cookies, ";", "=");
+
+                submitH5GameRecord(
+                        3,
+                        cookieMap.get("openid"),
+                        cookieMap.get("nickname"),
+                        iWeb.getWebTitle(),
+                        iWeb.getWebUrl(),
+                        "wx".equals(cookieMap.get("account_type")) ? 1 : 2,
+                        type
+                );
             }
 
             @Override
@@ -673,16 +689,12 @@ public class KFZSJs {
 
                     @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)");
+                        loadThirdPartUserInfo(type, params);
                     }
 
                     @Override
@@ -697,4 +709,69 @@ public class KFZSJs {
                     }
                 });
     }
+
+    private void loadThirdPartUserInfo(String platform, Map<String, String> cookies) {
+        UMShareAPI.get(SheepApp.getInstance()).getPlatformInfo(activity, "wx".equals(platform) ? SHARE_MEDIA.WEIXIN : SHARE_MEDIA.QQ,
+                new UMAuthListener() {
+
+                    @Override
+                    public void onStart(SHARE_MEDIA share_media) {
+
+                    }
+
+                    @Override
+                    public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
+                        cookies.put("nickname", map.get("screen_name"));
+                        Uri uri = Uri.parse(iWeb.getWebUrl());
+                        String host = uri.getHost();
+                        iWeb.setCookies(host, cookies);
+                        iWeb.loadJs("handleLogin(1)");
+
+                        submitH5GameRecord(
+                                2,
+                                cookies.get("openid"),
+                                map.get("screen_name"),
+                                iWeb.getWebTitle(),
+                                iWeb.getWebUrl(),
+                                "wx".equals(platform) ? 1 : 2,
+                                -1
+                        );
+                    }
+
+                    @Override
+                    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
+
+                    }
+
+                    @Override
+                    public void onCancel(SHARE_MEDIA share_media, int i) {
+
+                    }
+                });
+    }
+
+    private void submitH5GameRecord(int type, String openId, String nickname, String gameName, String gameUrl, int accountPlatform, int actionPlatform) {
+        JSONObject json = new JSONObject();
+        json.put("openid", openId);
+        json.put("nickname", nickname);
+        json.put("type", type);
+        json.put("game_name", gameName);
+        json.put("game_url", gameUrl);
+        json.put("account_platform", accountPlatform);
+        json.put("action_platform", actionPlatform);
+        SheepApp.getInstance().getNetComponent().getApiService().recordH5GameAction(json)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        LogUtil.logE(baseMessage != null ? baseMessage.getErrorMsg() + "" : "api错误");
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        LogUtil.logI("记录完成");
+                    }
+                });
+    }
 }