From 313f85a4ce2afcfc45260cd66b18a381e26db06c Mon Sep 17 00:00:00 2001 From: mehaotian <490272692@qq.com> Date: Tue, 24 Aug 2021 14:42:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(stat):=20=E7=BB=9F=E8=AE=A1=E5=85=BC?= =?UTF-8?q?=E5=AE=B9vue3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/uni-stat/src/index.js | 26 ++++++++++++++++++++------ packages/uni-stat/src/parameter.js | 22 +++++----------------- packages/uni-stat/src/stat.js | 26 +++++++++++--------------- 3 files changed, 36 insertions(+), 38 deletions(-) diff --git a/packages/uni-stat/src/index.js b/packages/uni-stat/src/index.js index f01b5ff36..87720854a 100644 --- a/packages/uni-stat/src/index.js +++ b/packages/uni-stat/src/index.js @@ -3,12 +3,15 @@ const stat = Stat.getInstance() let isHide = false const lifecycle = { onLaunch(options) { + console.log('report onLaunch init') stat.report(options, this) }, onReady() { + console.log('report onReady init') stat.ready(this) }, onLoad(options) { + console.log('report onLoad init') stat.load(options, this) // 重写分享,获取分享上报事件 if (this.$scope && this.$scope.onShareAppMessage) { @@ -20,14 +23,17 @@ const lifecycle = { } }, onShow() { + console.log('report onShow init') isHide = false stat.show(this) }, onHide() { + console.log('report onHide init') isHide = true stat.hide(this) }, onUnload() { + console.log('report onUnload init') if (isHide) { isHide = false return @@ -35,20 +41,28 @@ const lifecycle = { stat.hide(this) }, onError(e) { + console.log('report onError init') stat.error(e) }, } function main() { - if (process.env.NODE_ENV === 'development') { - uni.report = function (type, options) {} - } else { - const Vue = require('vue') - ;(Vue.default || Vue).mixin(lifecycle) + console.log('stat onload ----') + setTimeout(() => { + getApp().$.appContext.app.mixin(lifecycle) uni.report = function (type, options) { stat.sendEvent(type, options) } - } + }, 1) + // if (process.env.NODE_ENV === 'development') { + // uni.report = function (type, options) {} + // } else { + // const Vue = require('vue') + // ;(Vue.default || Vue).mixin(lifecycle) + // uni.report = function (type, options) { + // stat.sendEvent(type, options) + // } + // } } main() diff --git a/packages/uni-stat/src/parameter.js b/packages/uni-stat/src/parameter.js index 9ae0f9201..d2d1444d8 100644 --- a/packages/uni-stat/src/parameter.js +++ b/packages/uni-stat/src/parameter.js @@ -238,41 +238,29 @@ export const getRoute = () => { var pages = getCurrentPages() var page = pages[pages.length - 1] if (!page) return '' + // TODO 需要确认如果不用 $vm ,其他平台会不会出错 let _self = page.$vm if (getPlatformName() === 'bd') { return _self.$mp && _self.$mp.page.is } else { - return ( - (_self.$scope && _self.$scope.route) || - (_self.$mp && _self.$mp.page.route) - ) + return _self.route || (_self.$mp && _self.$mp.page.route) } } export const getPageRoute = (self) => { - var pages = getCurrentPages() - var page = pages[pages.length - 1] - if (!page) return '' - let _self = page.$vm + let route = getRoute() let query = self._query let str = query && JSON.stringify(query) !== '{}' ? '?' + JSON.stringify(query) : '' // clear self._query = '' - if (getPlatformName() === 'bd') { - return _self.$mp && _self.$mp.page.is + str - } else { - return ( - (_self.$scope && _self.$scope.route + str) || - (_self.$mp && _self.$mp.page.route + str) - ) - } + return route + str } export const getPageTypes = (self) => { if ( - self.mpType === 'page' || + self.$mpType === 'page' || (self.$mp && self.$mp.mpType === 'page') || self.$options.mpType === 'page' ) { diff --git a/packages/uni-stat/src/stat.js b/packages/uni-stat/src/stat.js index f125983a6..691a6c288 100644 --- a/packages/uni-stat/src/stat.js +++ b/packages/uni-stat/src/stat.js @@ -26,7 +26,7 @@ import { import { STAT_URL, STAT_VERSION, STAT_H5_URL, OPERATING_TIME } from './config' -const titleJsons = process.env.UNI_STAT_PAGES_TITLE +const titleJsons = process.env.UNI_STAT_TITLE_JSON const statConfig = { appid: process.env.UNI_APP_ID, } @@ -130,11 +130,11 @@ class Util { } getLastTime() - this._lastPageRoute = route const time = getResidenceTime('page') + // 停留时间 if (time.overtime) { let options = { - path: this._lastPageRoute, + path: route, scene: this.statData.sc, } this._sendReportRequest(options) @@ -146,11 +146,13 @@ class Util { if (!this.__licationHide) { getLastTime() const time = getResidenceTime('page') + const route = getPageRoute(this) this._sendPageRequest({ - url: this._lastPageRoute, + url: route, urlref: this._lastPageRoute, urlref_ts: time.residenceTime, }) + this._lastPageRoute = route this._navigationBarTitle = { config: '', page: '', @@ -306,7 +308,6 @@ class Util { data.ttn = title.page data.ttpj = title.config data.ttc = title.report - let requestData = this._reportingRequestData if (getPlatformName() === 'n') { requestData = uni.getStorageSync('__UNI__STAT__DATA') || {} @@ -376,9 +377,6 @@ class Util { uni.request({ url: STAT_URL, method: 'POST', - // header: { - // 'content-type': 'application/json' // 默认值 - // }, data: optionsData, success: () => { // if (process.env.NODE_ENV === 'development') { @@ -494,19 +492,17 @@ class Stat extends Util { report(options, self) { this.self = self - // if (process.env.NODE_ENV === 'development') { - // console.log('report init'); - // } setPageResidenceTime() this.__licationShow = true this._sendReportRequest(options, true) } load(options, self) { - if (!self.$scope && !self.$mp) { - const page = getCurrentPages() - self.$scope = page[page.length - 1] - } + // if (!self.$scope && !self.$mp) { + // const page = getCurrentPages() + // console.log(); + // self.$scope = page[page.length - 1] + // } this.self = self this._query = options } -- GitLab