Преглед изворни кода

feat: $env. $envs计算优化

cuiyalong пре 2 година
родитељ
комит
8e2764778b

+ 48 - 21
src/jfw/modules/app/src/web/staticres/jyapp/js/common.js

@@ -313,36 +313,63 @@ function isNullObj (obj) {
 
 var JyObjMessage = new Object();
 
-/**
- * 用于判断是否在APP容器内
- * @returns {boolean}
- */
-function getIsInTheAppContainer () {
-  // 判断是否在app环境下
-  var inApp = false
-  try {
-    if (mySysIsIos()) {
-      var iniOSApp = typeof window.webkit.messageHandlers.skipAppointTab.postMessage === 'function'
-      inApp = iniOSApp
-    } else {
-      var inAndroidApp = typeof window.JyObj !== 'undefined'
-      inApp = inAndroidApp
+// $env, $envs的辅助函数
+window.utilsEnv = {
+  // 获取当前是android或者ios
+  androidOrIOS: function () {
+    var u = navigator.userAgent.toLowerCase()
+    var agent = null
+    if (/iphone|ipod|ipad|ios/.test(u)) {
+      agent = 'ios'
+    } else if (/(Android)/i.test(u)) {
+      agent = 'android'
+    }
+    return agent
+  },
+  /**
+   * 用于判断是否在APP容器内
+   * @returns {boolean}
+   */
+  getIsInTheAppContainer: function () {
+    // 判断是否在app环境下
+    var inApp = false
+    try {
+      if (this.androidOrIOS() === 'ios') {
+        var iniOSApp = typeof window.webkit.messageHandlers.skipAppointTab.postMessage === 'function'
+        inApp = iniOSApp
+      } else {
+        var inAndroidApp = typeof window.JyObj !== 'undefined'
+        inApp = inAndroidApp
+      }
+    } catch (e) {
+      console.warn(e)
+      inApp = false
+    }
+    return inApp
+  },
+  getPlatformEnvs: function () {
+    var inWX = navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1
+    var inApp = this.getIsInTheAppContainer()
+    var platformOS = this.androidOrIOS()
+    var platform = inApp ? 'app' : (inWX ? 'wx' : 'h5')
+    return {
+      platformOS: platformOS,
+      platform: platform,
+      inApp: inApp,
+      inWX: inWX
     }
-
-  } catch (e) {
-    console.warn(e)
-    inApp = false
   }
-  return inApp
 }
+window.utilsEnv.platformEnvs = utilsEnv.getPlatformEnvs()
 
 /**
  * 提供模拟默认客户端函数,避免报错
  */
 function mockAppFn () {
-  if (getIsInTheAppContainer()) return
+  if (utilsEnv.platformEnvs.inApp) return
   // 非APP环境下,提供默认函数
   window.JyObj = {
+    mock: true,
     //获取经纬度
     getLLitude: function () {
       return ''
@@ -458,7 +485,7 @@ function mockAppFn () {
 mockAppFn()
 
 $(function () {
-  if (mySysIsIos() && getIsInTheAppContainer()) {
+  if (mySysIsIos() && utilsEnv.platformEnvs.inApp) {
     window.JyObj = {
       //获取经纬度
       getLLitude: function () {

+ 0 - 46
src/web/staticres/common-module/public/js/utils.js

@@ -98,52 +98,6 @@ var versionChangeLog = {
   '0.0.5': ['新增utils.$env, utils.$envs 等变量'],
 }
 
-// $env, $envs的辅助函数
-var utilsEnv = {
-  // 获取当前是android或者ios
-  androidOrIOS: function () {
-    var u = navigator.userAgent.toLowerCase()
-    var agent = null
-    if (/iphone|ipod|ipad|ios/.test(u)) {
-      agent = 'ios'
-    } else if (/(Android)/i.test(u)) {
-      agent = 'android'
-    }
-    return agent
-  },
-  // 是否是在app里面运行
-  getIsInTheAppContainer: function () {
-    // 判断是否在app环境下
-    var inApp = false
-    try {
-      if (this.androidOrIOS() === 'ios') {
-        var iniOSApp = typeof window.webkit.messageHandlers.skipAppointTab.postMessage === 'function'
-        inApp = iniOSApp
-      } else {
-        var inAndroidApp = typeof window.JyObj !== 'undefined'
-        inApp = inAndroidApp
-      }
-    } catch (e) {
-      console.warn(e)
-      inApp = false
-    }
-    return inApp
-  },
-  getPlatformEnvs: function () {
-    var inWX = navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1
-    var inApp = this.getIsInTheAppContainer()
-    var platformOS = this.androidOrIOS()
-    var platform = inApp ? 'app' : (inWX ? 'wx' : 'h5')
-    return {
-      platformOS: platformOS,
-      platform: platform,
-      inApp: inApp,
-      inWX: inWX
-    }
-  }
-}
-utilsEnv.platformEnvs = utilsEnv.getPlatformEnvs()
-
 var utils = {
   // utils版本号
   version: '0.0.5',