浏览代码

feat: 添加utils.$env/utils.$envs

cuiyalong 2 年之前
父节点
当前提交
d85922bc2b
共有 1 个文件被更改,包括 70 次插入1 次删除
  1. 70 1
      src/web/staticres/common-module/public/js/utils.js

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

@@ -95,12 +95,70 @@ var versionChangeLog = {
   '0.0.2': ['utils.dateFromNow 函数逻辑修改,具体修改内容查看函数注释'],
   '0.0.3': ['utils.formatMoney 新增不使用,分割返回值的选项'],
   '0.0.4': ['utils.checkNowInAppTabbarPage 判断是否app tabbar 页面,返回对应的key'],
+  '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.4',
+  version: '0.0.5',
+  $env: {
+    appVersion: '', // app版本号
+    platformOS: utilsEnv.platformEnvs.platformOS, // android或者ios
+    platform: utilsEnv.platformEnvs.platform, // wx/app/h5
+  },
+  $envs: {
+    inWX: utilsEnv.platformEnvs.inWX, // 是否在微信中
+    inH5: utilsEnv.platformEnvs.platform === 'h5', // 是否在h5中
+    inApp: utilsEnv.platformEnvs.inApp, // 是否在app中
+    inAndroid: utilsEnv.platformEnvs.platformOS === 'android', // 是否在android中
+    inIOS: utilsEnv.platformEnvs.platformOS === 'ios', // 是否在android中
+  },
   isWeiXinBrowser: navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1,
   isAndroid: navigator.userAgent.toLowerCase().indexOf('android') !== -1,
   isIos: /iphone|ipod|ipad|ios/.test(navigator.userAgent.toLowerCase()),
@@ -797,3 +855,14 @@ var utils = {
     return appTabbarName
   }
 }
+Object.defineProperty(utils.$env, 'appVersion', {
+  get () {
+    var version
+    try {
+      version = JyObj.getVersion()
+    } catch (e) {
+      console.warn('error: get app version failed')
+    }
+    return version
+  }
+})