Explorar o código

友盟加载优化

喻文俊 %!s(int64=3) %!d(string=hai) anos
pai
achega
b12657d51b
Modificáronse 3 ficheiros con 44 adicións e 28 borrados
  1. 6 28
      main.js
  2. 0 0
      plugins/uma/config.js
  3. 38 0
      plugins/uma/index.js

+ 6 - 28
main.js

@@ -4,12 +4,10 @@ import App from './App'
 import './services/index.js'
 import * as Api from '@/common/config/caimeiApi.js'
 import * as Regs from '@/common/config/common.js'
-import { umtrackWxKey } from '@/utils/config.js'
+// 友盟
+import Uma from './plugins/uma'
 
-// 友盟依赖包
-import uma from 'umtrack-wx'
-
-// 公共组件
+// 公共组件 全局组件
 import { msg, modal, prePage, boundingClientRect } from './utils/util'
 import cuCustom from './components/cm-custom/cu-custom.vue'
 import auCustom from './components/cm-custom/au-custom.vue'
@@ -32,29 +30,6 @@ Vue.prototype.$getStorage = function(key) {
     }
 }
 
-/**
- * 友盟+小程序统计
- */
-if (process.env.NODE_ENV != 'development') {
-    // #ifdef MP-WEIXIN
-    uma.init({
-        appKey: umtrackWxKey, //由友盟分配的APP_KEY
-        // 使用Openid进行统计,此项为false时将使用友盟+uuid进行用户统计。
-        // 使用Openid来统计微信小程序的用户,会使统计的指标更为准确,对系统准确性要求高的应用推荐使用Openid。
-        useOpenid: true,
-        // 使用openid进行统计时,是否授权友盟自动获取Openid,
-        // 如若需要,请到友盟后台"设置管理-应用信息"(https://mp.umeng.com/setting/appset)中设置appId及secret
-        autoGetOpenid: true,
-        debug: true, //是否打开调试模式
-        uploadUserInfo: false // 自动上传用户信息,设为false取消上传,默认为false
-    })
-    uma.install = function(Vue) {
-        Vue.prototype.$uma = uma
-    }
-    Vue.use(uma)
-    // #endif
-}
-
 // Vue实例化
 Vue.config.productionTip = false
 Vue.prototype.$fire = new Vue()
@@ -66,6 +41,9 @@ Vue.prototype.$Static = 'https://static.caimei365.com/app/img/'
 
 App.mpType = 'app'
 
+// 使用插件
+Vue.use(Uma)
+
 const app = new Vue({
     ...App
 })

+ 0 - 0
utils/config.js → plugins/uma/config.js


+ 38 - 0
plugins/uma/index.js

@@ -0,0 +1,38 @@
+// 友盟依赖包
+import uma from 'umtrack-wx'
+import { umtrackWxKey as appKey } from './config.js'
+
+// 默认事件广播(防止报错)
+const trackEvent = () => {
+    console.info('只有在生产环境中才提交友盟事件')
+    return
+}
+
+const install = (Vue, options = {}) => {
+    console.info(`当前代码运行环境${process.env.NODE_ENV}`)
+    // 获取配置
+    const { useOpenid = true, autoGetOpenid = true, debug = true, uploadUserInfo = true } = options
+    if (process.env.NODE_ENV === 'production') {
+        uma.init({
+            //由友盟分配的APP_KEY
+            appKey,
+            // 使用Openid进行统计,此项为false时将使用友盟+uuid进行用户统计。
+            // 使用Openid来统计微信小程序的用户,会使统计的指标更为准确,对系统准确性要求高的应用推荐使用Openid。
+            useOpenid,
+            // 使用openid进行统计时,是否授权友盟自动获取Openid,
+            // 如若需要,请到友盟后台"设置管理-应用信息"(https://mp.umeng.com/setting/appset)中设置appId及secret
+            autoGetOpenid,
+            //是否打开调试模式
+            debug,
+            // 自动上传用户信息,设为false取消上传,默认为false
+            uploadUserInfo
+        })
+        Vue.prototype.$uma = uma
+    } else {
+        Vue.prototype.$uma = {
+            trackEvent
+        }
+    }
+}
+
+export default install