report-app.js
1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import axios from 'axios';
import md5 from 'md5';
export default class reportApp {
constructor(params = {}) {
this.isProd = !params.unProd;
this.events = {
ps: '0',
av: params.version,
ab: params.buildId,
ca: '0',
net: 'unknown',
sid: md5(`${params.udid}_${new Date().getTime()}`)
};
this.params = {
mst: '',
st: '',
ec: '',
ei: '',
url: '',
host: '',
locfun: ''
};
this.device = {
ak: `yohobuy_${params.isiOS ? 'ios' : 'android'}${params.isApp ? '' : '_h5'}`,
udid: params.udid || '',
ch: '',
os: params.isiOS ? 'IOS' : 'Android',
osv: params.osVersion,
dm: '',
};
}
updateDeviceInfo(info = {}) {
info.ch && (this.device.ch = info.ch);
info.dm && (this.device.dm = info.dm);
info.udid && (this.device.udid = info.udid);
info.av && (this.events.av = info.av);
info.ab && (this.events.ab = info.ab);
info.sid && (this.events.sid = info.sid);
}
report(type, pt, pn, params = {}, uid = 0) {
if (!this.isProd) {
return;
}
params = Object.assign({}, this.params, params);
if (window) {
Object.assign(params, {
host: window.location.host,
url: window.location.href
});
}
axios({
baseURL: '//app.yoho.cn/collect/v3',
url: '',
method: 'POST',
data: {
type: '',
device: this.device,
events: [
Object.assign({
uid: md5(`${uid}`),
ts: new Date().getTime() + '000000',
pt: pt,
pn: pn,
param: params
}, this.events)
]
}
})
}
}