Forráskód Böngészése

fix: 部分h5浏览器(华为、荣耀)页面返回不刷新兼容

cuiyalong 2 éve
szülő
commit
3022dd47bd

+ 0 - 3
src/jfw/modules/app/src/web/staticres/jyapp/js/common.js

@@ -1387,7 +1387,6 @@ function checkMsgCount(acync, str, callback) {
       var num = 0
       if (r.error_code === 0) {
         num = r.data.count
-        console.info(num)
         try {
           JyObj.sendMsgCount(num)
         } catch (e) {
@@ -1398,11 +1397,9 @@ function checkMsgCount(acync, str, callback) {
         var isMsg = localStorage.getItem('isMsgNum')
         if (num !== Number(isMsg)) {
           kfData(acync, num)
-          // localStorage.setItem('isMsgNum', num)
         }
       } else {
         kfData(acync, num)
-        // localStorage.setItem('isMsgNum', num)
       }
 
       callback && callback()

+ 21 - 1
src/web/staticres/common-module/public/js/utils.js

@@ -876,7 +876,26 @@ var utils = {
       }
     }
     return appTabbarName
-  }
+  },
+  // 部分h5浏览器(华为、荣耀)页面返回不刷新兼容
+  fixSomeH5BackRefresh () {
+    // 如果全局有,则说明已经被调用过,就不需要再次调用
+    if (window.fixSomeH5BackRefresh && typeof window.fixSomeH5BackRefresh) return
+    if (utilsEnv.platformEnvs.platform !== 'h5') return
+    const ua = navigator.userAgent.toLowerCase()
+    // 判断是不是华为/荣耀浏览器
+    const huawei = ua.includes('huawei') || ua.includes('honor')
+    if (huawei) {
+      window.addEventListener('visibilitychange', function () {
+        const v = document.visibilityState
+        if (v === 'hidden') {
+          // do something
+        } else if (v === 'visible') {
+          location.reload()
+        }
+      })
+    }
+  },
 }
 Object.defineProperty(utils.$env, 'appVersion', {
   get () {
@@ -889,3 +908,4 @@ Object.defineProperty(utils.$env, 'appVersion', {
     return version
   }
 })
+utils.fixSomeH5BackRefresh()

+ 0 - 15
src/web/staticres/entnichePush/js/common.js

@@ -1185,25 +1185,10 @@ function checkMsgCount(acync, str, callback) {
       if (str == 1) {
         var isMsg = localStorage.getItem('isMsgNum')
         if (num !== Number(isMsg)) {
-          try {
-            /**
-             * 在此直接刷新 首页/消息 页面 (旧业务逻辑,可能是想消除对应页面未读消息小红点?)
-             * 改为判断是否为 tabbar 页面,仅在是 tabbar 页面是刷新
-             */
-            if (checkNowInTabbarPage()) {
-              JyObj.refreshAppointTab('search', 1)
-              JyObj.refreshAppointTab('message', 1)
-            }
-            // JyObj.checkLab()
-          } catch (e) {
-            console.log(e)
-          }
           kfData(acync, num)
-          // localStorage.setItem('isMsgNum', num)
         }
       } else {
         kfData(acync, num)
-        // localStorage.setItem('isMsgNum', num)
       }
 
       callback && callback()