Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
cbe40e14
U
uni-app
项目概览
DCloud
/
uni-app
2 个月 前同步成功
通知
718
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cbe40e14
编写于
4月 29, 2020
作者:
M
mehaotian
提交者:
d-u-a
4月 29, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(stat) : 报数前咨询服务器,是否长久未登录,若是,则本地设置24小时内不上报
上级
2981847d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
263 addition
and
113 deletion
+263
-113
packages/uni-stat/dist/index.js
packages/uni-stat/dist/index.js
+130
-56
packages/uni-stat/src/index.js
packages/uni-stat/src/index.js
+17
-17
packages/uni-stat/src/parameter.js
packages/uni-stat/src/parameter.js
+86
-17
packages/uni-stat/src/stat.js
packages/uni-stat/src/stat.js
+30
-23
未找到文件。
packages/uni-stat/dist/index.js
浏览文件 @
cbe40e14
...
...
@@ -7,6 +7,7 @@ const PAGE_PVER_TIME = 1800;
const
APP_PVER_TIME
=
300
;
const
OPERATING_TIME
=
10
;
const
statConfig
=
require
(
'
uni-stat-config
'
).
default
||
require
(
'
uni-stat-config
'
);
const
UUID_KEY
=
'
__DC_STAT_UUID
'
;
const
UUID_VALUE
=
'
__DC_UUID_VALUE
'
;
...
...
@@ -82,12 +83,12 @@ const getPlatformName = () => {
};
const
getPackName
=
()
=>
{
let
packName
=
''
;
if
(
getPlatformName
()
===
'
wx
'
||
getPlatformName
()
===
'
qq
'
)
{
// 兼容微信小程序低版本基础库
if
(
uni
.
canIUse
(
'
getAccountInfoSync
'
)){
packName
=
uni
.
getAccountInfoSync
().
miniProgram
.
appId
||
''
;
}
let
packName
=
''
;
if
(
getPlatformName
()
===
'
wx
'
||
getPlatformName
()
===
'
qq
'
)
{
// 兼容微信小程序低版本基础库
if
(
uni
.
canIUse
(
'
getAccountInfoSync
'
))
{
packName
=
uni
.
getAccountInfoSync
().
miniProgram
.
appId
||
''
;
}
}
return
packName
};
...
...
@@ -255,22 +256,22 @@ const getPageRoute = (self) => {
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
(
_self
.
$scope
&&
_self
.
$scope
.
route
+
str
)
||
(
_self
.
$mp
&&
_self
.
$mp
.
page
.
route
+
str
);
}
};
const
getPageTypes
=
(
self
)
=>
{
if
(
self
.
mpType
===
'
page
'
||
(
self
.
$mp
&&
self
.
$mp
.
mpType
===
'
page
'
)
||
self
.
$options
.
mpType
===
'
page
'
)
{
return
true
;
}
if
(
self
.
mpType
===
'
page
'
||
(
self
.
$mp
&&
self
.
$mp
.
mpType
===
'
page
'
)
||
self
.
$options
.
mpType
===
'
page
'
)
{
return
true
;
}
return
false
;
};
const
calibration
=
(
eventName
,
options
)
=>
{
// login 、 share 、pay_success 、pay_fail 、register 、title
if
(
!
eventName
){
console
.
error
(
`uni.report 缺少 [eventName] 参数`
);
return
true
// login 、 share 、pay_success 、pay_fail 、register 、title
if
(
!
eventName
)
{
console
.
error
(
`uni.report 缺少 [eventName] 参数`
);
return
true
}
if
(
typeof
eventName
!==
'
string
'
)
{
console
.
error
(
`uni.report [eventName] 参数类型错误,只能为 String 类型`
);
...
...
@@ -294,11 +295,78 @@ const calibration = (eventName, options) => {
if
(
eventName
===
'
title
'
&&
typeof
options
!==
'
string
'
)
{
console
.
error
(
'
uni.report [eventName] 参数为 title 时,[options] 参数只能为 String 类型
'
);
return
true
}
}
};
const
Report_Data_Time
=
'
Report_Data_Time
'
;
const
isReportData
=
()
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
start_time
=
''
;
let
end_time
=
new
Date
().
getTime
();
let
diff_time
=
60
*
1000
*
60
*
24
;
try
{
start_time
=
uni
.
getStorageSync
(
Report_Data_Time
);
}
catch
(
e
)
{
start_time
=
''
;
}
if
(
!
start_time
)
{
uni
.
setStorageSync
(
Report_Data_Time
,
end_time
);
start_time
=
end_time
;
}
if
((
end_time
-
start_time
)
>
diff_time
)
{
requestData
(({
enable
})
=>
{
uni
.
setStorageSync
(
Report_Data_Time
,
end_time
);
if
(
enable
===
1
)
{
resolve
();
}
});
}
})
};
const
Report_Status
=
'
Report_Status
'
;
const
requestData
=
(
done
)
=>
{
let
formData
=
{
usv
:
STAT_VERSION
,
conf
:
encodeURIComponent
({
ak
:
statConfig
.
appid
})
};
uni
.
request
({
url
:
STAT_URL
,
method
:
'
GET
'
,
data
:
formData
,
success
:
(
res
)
=>
{
const
{
data
}
=
res
;
if
(
data
.
ret
===
0
)
{
typeof
done
===
'
function
'
&&
done
({
enable
:
data
.
enable
});
}
},
fail
:
(
e
)
=>
{
let
report_status_code
=
1
;
try
{
report_status_code
=
uni
.
getStorageSync
(
Report_Status
);
}
catch
(
e
)
{
report_status_code
=
1
;
}
if
(
report_status_code
===
1
)
{
typeof
done
===
'
function
'
&&
done
({
enable
:
res
.
enable
});
}
// console.error('统计请求错误');
}
});
};
const
PagesJson
=
require
(
'
uni-pages?{"type":"style"}
'
).
default
;
const
statConfig
=
require
(
'
uni-stat-config
'
).
default
||
require
(
'
uni-stat-config
'
);
const
statConfig
$1
=
require
(
'
uni-stat-config
'
).
default
||
require
(
'
uni-stat-config
'
);
const
resultOptions
=
uni
.
getSystemInfoSync
();
...
...
@@ -328,7 +396,7 @@ class Util {
uuid
:
getUuid
(),
ut
:
getPlatformName
(),
mpn
:
getPackName
(),
ak
:
statConfig
.
appid
,
ak
:
statConfig
$1
.
appid
,
usv
:
STAT_VERSION
,
v
:
getVersion
(),
ch
:
getChannel
(),
...
...
@@ -352,7 +420,11 @@ class Util {
};
}
getIsReportData
(){
return
isReportData
()
}
_applicationShow
()
{
if
(
this
.
__licationHide
)
{
getLastTime
();
...
...
@@ -547,7 +619,7 @@ class Util {
}
getLocation
()
{
if
(
statConfig
.
getLocation
)
{
if
(
statConfig
$1
.
getLocation
)
{
uni
.
getLocation
({
type
:
'
wgs84
'
,
geocode
:
true
,
...
...
@@ -641,27 +713,29 @@ class Util {
}
this
.
_sendRequest
(
optionsData
);
}
_sendRequest
(
optionsData
)
{
uni
.
request
({
url
:
STAT_URL
,
method
:
'
POST
'
,
// header: {
// 'content-type': 'application/json' // 默认值
// },
data
:
optionsData
,
success
:
()
=>
{
// if (process.env.NODE_ENV === 'development') {
// console.log('stat request success');
// }
},
fail
:
(
e
)
=>
{
if
(
++
this
.
_retry
<
3
)
{
setTimeout
(()
=>
{
this
.
_sendRequest
(
optionsData
);
},
1000
);
}
}
});
_sendRequest
(
optionsData
)
{
this
.
getIsReportData
().
then
(()
=>
{
uni
.
request
({
url
:
STAT_URL
,
method
:
'
POST
'
,
// header: {
// 'content-type': 'application/json' // 默认值
// },
data
:
optionsData
,
success
:
()
=>
{
// if (process.env.NODE_ENV === 'development') {
// console.log('stat request success');
// }
},
fail
:
(
e
)
=>
{
if
(
++
this
.
_retry
<
3
)
{
setTimeout
(()
=>
{
this
.
_sendRequest
(
optionsData
);
},
1000
);
}
}
});
});
}
/**
* h5 请求
...
...
@@ -836,14 +910,14 @@ const lifecycle = {
stat
.
ready
(
this
);
},
onLoad
(
options
)
{
stat
.
load
(
options
,
this
);
// 重写分享,获取分享上报事件
if
(
this
.
$scope
&&
this
.
$scope
.
onShareAppMessage
)
{
let
oldShareAppMessage
=
this
.
$scope
.
onShareAppMessage
;
this
.
$scope
.
onShareAppMessage
=
function
(
options
)
{
stat
.
interceptShare
(
false
);
return
oldShareAppMessage
.
call
(
this
,
options
)
};
stat
.
load
(
options
,
this
);
// 重写分享,获取分享上报事件
if
(
this
.
$scope
&&
this
.
$scope
.
onShareAppMessage
)
{
let
oldShareAppMessage
=
this
.
$scope
.
onShareAppMessage
;
this
.
$scope
.
onShareAppMessage
=
function
(
options
)
{
stat
.
interceptShare
(
false
);
return
oldShareAppMessage
.
call
(
this
,
options
)
};
}
},
onShow
()
{
...
...
@@ -867,14 +941,14 @@ const lifecycle = {
};
function
main
()
{
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
{
const
Vue
=
require
(
'
vue
'
);
(
Vue
.
default
||
Vue
).
mixin
(
lifecycle
);
uni
.
report
=
function
(
type
,
options
)
{
stat
.
sendEvent
(
type
,
options
);
};
}
}
...
...
packages/uni-stat/src/index.js
浏览文件 @
cbe40e14
import
Stat
from
'
./stat.js
'
;
import
Stat
from
'
./stat.js
'
;
const
stat
=
Stat
.
getInstance
();
let
isHide
=
false
const
lifecycle
=
{
...
...
@@ -9,14 +9,14 @@ const lifecycle = {
stat
.
ready
(
this
);
},
onLoad
(
options
)
{
stat
.
load
(
options
,
this
);
// 重写分享,获取分享上报事件
if
(
this
.
$scope
&&
this
.
$scope
.
onShareAppMessage
)
{
let
oldShareAppMessage
=
this
.
$scope
.
onShareAppMessage
;
this
.
$scope
.
onShareAppMessage
=
function
(
options
)
{
stat
.
interceptShare
(
false
);
return
oldShareAppMessage
.
call
(
this
,
options
)
}
stat
.
load
(
options
,
this
);
// 重写分享,获取分享上报事件
if
(
this
.
$scope
&&
this
.
$scope
.
onShareAppMessage
)
{
let
oldShareAppMessage
=
this
.
$scope
.
onShareAppMessage
;
this
.
$scope
.
onShareAppMessage
=
function
(
options
)
{
stat
.
interceptShare
(
false
);
return
oldShareAppMessage
.
call
(
this
,
options
)
}
}
},
onShow
()
{
...
...
@@ -40,14 +40,14 @@ const lifecycle = {
}
function
main
()
{
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
{
const
Vue
=
require
(
'
vue
'
);
(
Vue
.
default
||
Vue
).
mixin
(
lifecycle
);
uni
.
report
=
function
(
type
,
options
)
{
stat
.
sendEvent
(
type
,
options
);
};
}
}
...
...
packages/uni-stat/src/parameter.js
浏览文件 @
cbe40e14
import
{
PAGE_PVER_TIME
,
APP_PVER_TIME
APP_PVER_TIME
,
STAT_URL
,
STAT_VERSION
}
from
'
./config
'
;
const
statConfig
=
require
(
'
uni-stat-config
'
).
default
||
require
(
'
uni-stat-config
'
);
const
UUID_KEY
=
'
__DC_STAT_UUID
'
;
const
UUID_VALUE
=
'
__DC_UUID_VALUE
'
;
...
...
@@ -78,12 +80,12 @@ export const getPlatformName = () => {
}
export
const
getPackName
=
()
=>
{
let
packName
=
''
if
(
getPlatformName
()
===
'
wx
'
||
getPlatformName
()
===
'
qq
'
)
{
// 兼容微信小程序低版本基础库
if
(
uni
.
canIUse
(
'
getAccountInfoSync
'
)){
packName
=
uni
.
getAccountInfoSync
().
miniProgram
.
appId
||
''
;
}
let
packName
=
''
if
(
getPlatformName
()
===
'
wx
'
||
getPlatformName
()
===
'
qq
'
)
{
// 兼容微信小程序低版本基础库
if
(
uni
.
canIUse
(
'
getAccountInfoSync
'
))
{
packName
=
uni
.
getAccountInfoSync
().
miniProgram
.
appId
||
''
;
}
}
return
packName
}
...
...
@@ -254,22 +256,22 @@ export const getPageRoute = (self) => {
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
(
_self
.
$scope
&&
_self
.
$scope
.
route
+
str
)
||
(
_self
.
$mp
&&
_self
.
$mp
.
page
.
route
+
str
);
}
};
export
const
getPageTypes
=
(
self
)
=>
{
if
(
self
.
mpType
===
'
page
'
||
(
self
.
$mp
&&
self
.
$mp
.
mpType
===
'
page
'
)
||
self
.
$options
.
mpType
===
'
page
'
)
{
return
true
;
}
if
(
self
.
mpType
===
'
page
'
||
(
self
.
$mp
&&
self
.
$mp
.
mpType
===
'
page
'
)
||
self
.
$options
.
mpType
===
'
page
'
)
{
return
true
;
}
return
false
;
}
export
const
calibration
=
(
eventName
,
options
)
=>
{
// login 、 share 、pay_success 、pay_fail 、register 、title
if
(
!
eventName
){
console
.
error
(
`uni.report 缺少 [eventName] 参数`
);
return
true
// login 、 share 、pay_success 、pay_fail 、register 、title
if
(
!
eventName
)
{
console
.
error
(
`uni.report 缺少 [eventName] 参数`
);
return
true
}
if
(
typeof
eventName
!==
'
string
'
)
{
console
.
error
(
`uni.report [eventName] 参数类型错误,只能为 String 类型`
);
...
...
@@ -293,5 +295,72 @@ export const calibration = (eventName, options) => {
if
(
eventName
===
'
title
'
&&
typeof
options
!==
'
string
'
)
{
console
.
error
(
'
uni.report [eventName] 参数为 title 时,[options] 参数只能为 String 类型
'
);
return
true
}
}
}
const
Report_Data_Time
=
'
Report_Data_Time
'
export
const
isReportData
=
()
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
start_time
=
''
let
end_time
=
new
Date
().
getTime
()
let
diff_time
=
60
*
1000
*
60
*
24
try
{
start_time
=
uni
.
getStorageSync
(
Report_Data_Time
)
}
catch
(
e
)
{
start_time
=
''
}
if
(
!
start_time
)
{
uni
.
setStorageSync
(
Report_Data_Time
,
end_time
)
start_time
=
end_time
}
if
((
end_time
-
start_time
)
>
diff_time
)
{
requestData
(({
enable
})
=>
{
uni
.
setStorageSync
(
Report_Data_Time
,
end_time
)
if
(
enable
===
1
)
{
resolve
();
}
});
}
})
}
const
Report_Status
=
'
Report_Status
'
const
requestData
=
(
done
)
=>
{
let
formData
=
{
usv
:
STAT_VERSION
,
conf
:
encodeURIComponent
({
ak
:
statConfig
.
appid
})
}
uni
.
request
({
url
:
STAT_URL
,
method
:
'
GET
'
,
data
:
formData
,
success
:
(
res
)
=>
{
const
{
data
}
=
res
if
(
data
.
ret
===
0
)
{
typeof
done
===
'
function
'
&&
done
({
enable
:
data
.
enable
})
}
},
fail
:
(
e
)
=>
{
let
report_status_code
=
1
try
{
report_status_code
=
uni
.
getStorageSync
(
Report_Status
)
}
catch
(
e
)
{
report_status_code
=
1
}
if
(
report_status_code
===
1
)
{
typeof
done
===
'
function
'
&&
done
({
enable
:
res
.
enable
})
}
// console.error('统计请求错误');
}
});
}
packages/uni-stat/src/stat.js
浏览文件 @
cbe40e14
...
...
@@ -22,7 +22,8 @@ import {
getPageRoute
,
getRoute
,
getPageTypes
,
calibration
calibration
,
isReportData
}
from
'
./parameter
'
;
import
{
...
...
@@ -84,7 +85,11 @@ class Util {
}
}
getIsReportData
(){
return
isReportData
()
}
_applicationShow
()
{
if
(
this
.
__licationHide
)
{
getLastTime
();
...
...
@@ -373,27 +378,29 @@ class Util {
}
this
.
_sendRequest
(
optionsData
)
}
_sendRequest
(
optionsData
)
{
uni
.
request
({
url
:
STAT_URL
,
method
:
'
POST
'
,
// header: {
// 'content-type': 'application/json' // 默认值
// },
data
:
optionsData
,
success
:
()
=>
{
// if (process.env.NODE_ENV === 'development') {
// console.log('stat request success');
// }
},
fail
:
(
e
)
=>
{
if
(
++
this
.
_retry
<
3
)
{
setTimeout
(()
=>
{
this
.
_sendRequest
(
optionsData
);
},
1000
);
}
}
});
_sendRequest
(
optionsData
)
{
this
.
getIsReportData
().
then
(()
=>
{
uni
.
request
({
url
:
STAT_URL
,
method
:
'
POST
'
,
// header: {
// 'content-type': 'application/json' // 默认值
// },
data
:
optionsData
,
success
:
()
=>
{
// if (process.env.NODE_ENV === 'development') {
// console.log('stat request success');
// }
},
fail
:
(
e
)
=>
{
if
(
++
this
.
_retry
<
3
)
{
setTimeout
(()
=>
{
this
.
_sendRequest
(
optionsData
);
},
1000
);
}
}
});
})
}
/**
* h5 请求
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录