Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qianlong66
uni-app
提交
7c8bb0cb
U
uni-app
项目概览
qianlong66
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7c8bb0cb
编写于
8月 26, 2021
作者:
M
mehaotian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(stat): 修改页面路径获取,修复了第一次上报无法获取当前页面标题的bug
上级
7a116803
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
95 addition
and
114 deletion
+95
-114
packages/uni-stat/src/index.js
packages/uni-stat/src/index.js
+12
-24
packages/uni-stat/src/parameter.js
packages/uni-stat/src/parameter.js
+5
-9
packages/uni-stat/src/stat.js
packages/uni-stat/src/stat.js
+78
-81
未找到文件。
packages/uni-stat/src/index.js
浏览文件 @
7c8bb0cb
...
...
@@ -3,15 +3,12 @@ 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
)
{
...
...
@@ -23,17 +20,14 @@ 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
...
...
@@ -41,29 +35,23 @@ const lifecycle = {
stat
.
hide
(
this
)
},
onError
(
e
)
{
console
.
log
(
'
report onError init
'
)
stat
.
error
(
e
)
},
}
function
main
()
{
console
.
log
(
'
stat onload ----
'
)
uni
.
onAppLaunch
((
options
)
=>
{
// 小程序平台此时也无法获取getApp,统一在options中传递一个app对象
options
.
app
.
$vm
.
$
.
appContext
.
app
.
mixin
(
lifecycle
)
uni
.
report
=
function
(
type
,
options
)
{
stat
.
sendEvent
(
type
,
options
)
}
})
// 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)
// }
// }
if
(
process
.
env
.
NODE_ENV
===
'
development
'
)
{
uni
.
report
=
function
(
type
,
options
)
{}
}
else
{
uni
.
onAppLaunch
((
options
)
=>
{
stat
.
report
(
options
)
// 小程序平台此时也无法获取getApp,统一在options中传递一个app对象
options
.
app
.
$vm
.
$
.
appContext
.
app
.
mixin
(
lifecycle
)
uni
.
report
=
function
(
type
,
options
)
{
stat
.
sendEvent
(
type
,
options
)
}
})
}
}
main
()
packages/uni-stat/src/parameter.js
浏览文件 @
7c8bb0cb
...
...
@@ -244,18 +244,14 @@ export const getRoute = () => {
if
(
getPlatformName
()
===
'
bd
'
)
{
return
_self
.
$mp
&&
_self
.
$mp
.
page
.
is
}
else
{
return
_self
.
route
||
(
_self
.
$
mp
&&
_self
.
$mp
.
pag
e
.
route
)
return
_self
.
route
||
(
_self
.
$
scope
&&
_self
.
$scop
e
.
route
)
}
}
export
const
getPageRoute
=
(
self
)
=>
{
let
route
=
getRoute
()
let
query
=
self
.
_query
let
str
=
query
&&
JSON
.
stringify
(
query
)
!==
'
{}
'
?
'
?
'
+
JSON
.
stringify
(
query
)
:
''
// clear
self
.
_query
=
''
return
route
+
str
export
const
getPageRoute
=
(
_this
)
=>
{
let
pageVm
=
_this
.
self
let
page
=
pageVm
.
$page
||
pageVm
.
$scope
.
$page
return
page
.
fullPath
===
'
/
'
?
page
.
route
:
page
.
fullPath
}
export
const
getPageTypes
=
(
self
)
=>
{
...
...
packages/uni-stat/src/stat.js
浏览文件 @
7c8bb0cb
...
...
@@ -25,8 +25,18 @@ import {
}
from
'
./parameter
'
import
{
STAT_URL
,
STAT_VERSION
,
STAT_H5_URL
,
OPERATING_TIME
}
from
'
./config
'
let
titleJsons
=
{}
// #ifdef MP
let
pagesTitle
=
require
(
'
uni-pages?{"type":"style"}
'
).
default
pagesTitle
=
pagesTitle
.
pages
for
(
let
i
in
pagesTitle
)
{
titleJsons
[
i
]
=
pagesTitle
[
i
].
navigationBarTitleText
||
''
}
// #endif
// #ifndef MP
titleJsons
=
process
.
env
.
UNI_STAT_TITLE_JSON
// #endif
const
titleJsons
=
process
.
env
.
UNI_STAT_TITLE_JSON
const
statConfig
=
{
appid
:
process
.
env
.
UNI_APP_ID
,
}
...
...
@@ -80,6 +90,62 @@ class Util {
sw
:
resultOptions
.
screenWidth
,
sh
:
resultOptions
.
screenHeight
,
}
// 注册拦截器
let
registerInterceptor
=
typeof
uni
.
addInterceptor
===
'
function
'
&&
process
.
env
.
NODE_ENV
!==
'
development
'
if
(
registerInterceptor
)
{
this
.
addInterceptorInit
()
this
.
interceptLogin
()
this
.
interceptShare
(
true
)
this
.
interceptRequestPayment
()
}
}
addInterceptorInit
()
{
let
self
=
this
uni
.
addInterceptor
(
'
setNavigationBarTitle
'
,
{
invoke
(
args
)
{
self
.
_navigationBarTitle
.
page
=
args
.
title
},
})
}
interceptLogin
()
{
let
self
=
this
uni
.
addInterceptor
(
'
login
'
,
{
complete
()
{
self
.
_login
()
},
})
}
interceptShare
(
type
)
{
let
self
=
this
if
(
!
type
)
{
self
.
_share
()
return
}
uni
.
addInterceptor
(
'
share
'
,
{
success
()
{
self
.
_share
()
},
fail
()
{
self
.
_share
()
},
})
}
interceptRequestPayment
()
{
let
self
=
this
uni
.
addInterceptor
(
'
requestPayment
'
,
{
success
()
{
self
.
_payment
(
'
pay_success
'
)
},
fail
()
{
self
.
_payment
(
'
pay_fail
'
)
},
})
}
getIsReportData
()
{
...
...
@@ -119,12 +185,11 @@ class Util {
_pageShow
()
{
const
route
=
getPageRoute
(
this
)
const
routepath
=
getRoute
(
this
)
this
.
_navigationBarTitle
.
config
=
titleJsons
[
routepath
]
||
''
this
.
_navigationBarTitle
.
config
=
(
titleJsons
&&
titleJsons
[
routepath
])
||
''
if
(
this
.
__licationShow
)
{
getFirstTime
()
this
.
__licationShow
=
false
// console.log('这是 onLauch 之后执行的第一次 pageShow ,为下次记录时间做准备');
this
.
_lastPageRoute
=
route
return
}
...
...
@@ -146,7 +211,10 @@ class Util {
if
(
!
this
.
__licationHide
)
{
getLastTime
()
const
time
=
getResidenceTime
(
'
page
'
)
const
route
=
getPageRoute
(
this
)
let
route
=
getPageRoute
(
this
)
if
(
!
this
.
_lastPageRoute
)
{
this
.
_lastPageRoute
=
route
}
this
.
_sendPageRequest
({
url
:
route
,
urlref
:
this
.
_lastPageRoute
,
...
...
@@ -190,6 +258,8 @@ class Util {
}
_sendReportRequest
(
options
)
{
this
.
_navigationBarTitle
.
lt
=
'
1
'
this
.
_navigationBarTitle
.
config
=
(
titleJsons
&&
titleJsons
[
options
.
path
])
||
''
let
query
=
options
.
query
&&
JSON
.
stringify
(
options
.
query
)
!==
'
{}
'
?
'
?
'
+
JSON
.
stringify
(
options
.
query
)
...
...
@@ -316,7 +386,6 @@ class Util {
requestData
[
data
.
lt
]
=
[]
}
requestData
[
data
.
lt
].
push
(
data
)
if
(
getPlatformName
()
===
'
n
'
)
{
uni
.
setStorageSync
(
'
__UNI__STAT__DATA
'
,
requestData
)
}
...
...
@@ -378,11 +447,7 @@ class Util {
url
:
STAT_URL
,
method
:
'
POST
'
,
data
:
optionsData
,
success
:
()
=>
{
// if (process.env.NODE_ENV === 'development') {
// console.log('stat request success');
// }
},
success
:
()
=>
{},
fail
:
(
e
)
=>
{
if
(
++
this
.
_retry
<
3
)
{
setTimeout
(()
=>
{
...
...
@@ -432,77 +497,16 @@ class Stat extends Util {
constructor
()
{
super
()
this
.
instance
=
null
// 注册拦截器
if
(
typeof
uni
.
addInterceptor
===
'
function
'
&&
process
.
env
.
NODE_ENV
!==
'
development
'
)
{
this
.
addInterceptorInit
()
this
.
interceptLogin
()
this
.
interceptShare
(
true
)
this
.
interceptRequestPayment
()
}
}
addInterceptorInit
()
{
let
self
=
this
uni
.
addInterceptor
(
'
setNavigationBarTitle
'
,
{
invoke
(
args
)
{
self
.
_navigationBarTitle
.
page
=
args
.
title
},
})
}
interceptLogin
()
{
let
self
=
this
uni
.
addInterceptor
(
'
login
'
,
{
complete
()
{
self
.
_login
()
},
})
}
interceptShare
(
type
)
{
let
self
=
this
if
(
!
type
)
{
self
.
_share
()
return
}
uni
.
addInterceptor
(
'
share
'
,
{
success
()
{
self
.
_share
()
},
fail
()
{
self
.
_share
()
},
})
}
interceptRequestPayment
()
{
let
self
=
this
uni
.
addInterceptor
(
'
requestPayment
'
,
{
success
()
{
self
.
_payment
(
'
pay_success
'
)
},
fail
()
{
self
.
_payment
(
'
pay_fail
'
)
},
})
}
report
(
options
,
self
)
{
this
.
self
=
self
// TODO 需要确认如果不用 $vm ,其他平台会不会出错
setPageResidenceTime
()
this
.
__licationShow
=
true
this
.
_sendReportRequest
(
options
,
true
)
}
load
(
options
,
self
)
{
// if (!self.$scope && !self.$mp) {
// const page = getCurrentPages()
// console.log();
// self.$scope = page[page.length - 1]
// }
this
.
self
=
self
this
.
_query
=
options
}
...
...
@@ -515,13 +519,7 @@ class Stat extends Util {
this
.
_applicationShow
(
self
)
}
}
ready
(
self
)
{
// this.self = self;
// if (getPageTypes(self)) {
// this._pageShow(self);
// }
}
ready
(
self
)
{}
hide
(
self
)
{
this
.
self
=
self
if
(
getPageTypes
(
self
))
{
...
...
@@ -535,7 +533,6 @@ class Stat extends Util {
if
(
process
.
env
.
NODE_ENV
===
'
development
'
)
{
console
.
info
(
'
当前运行环境为开发者工具,不上报数据。
'
)
}
// return;
}
let
emVal
=
''
if
(
!
em
.
message
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录