-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathindex.js
93 lines (77 loc) · 2.27 KB
/
index.js
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
* @Date: 2022-10-28 10:30:10
* @File:
*/
/**
* SensorsData uni-app SDK
* APP原生SDK所有API -> JS可用的所有API -> 各端通用的有限的桥API
* APP SDK(所有) -> JS 写的 SDK(所有) -> uni-app Bridge SDK(有限)
* 神策招聘前端后端运维分析师产品售前等职位,内推发送简历到 shengyonggen@sensorsdata.cn
*/
import commonAPI from './common-api'
// #ifdef APP-PLUS
import bridgeAPI from './middle/app.js'
// #endif
// #ifdef H5
import bridgeAPI from './middle/web.js'
// #endif
// #ifdef MP-WEIXIN
import bridgeAPI from './middle/weixin.js';
// #endif
// #ifdef MP-ALIPAY
import bridgeAPI from './middle/alipay.js';
// #endif
// #ifdef MP-BAIDU
import bridgeAPI from './middle/baidu.js';
// #endif
// #ifdef MP-TOUTIAO
import bridgeAPI from './middle/toutiao.js';
// #endif
// #ifdef MP-XHS
import bridgeAPI from './middle/xiaohongshu.js';
// #endif
import get_enableVue3MpClick from './vue3-mpclick';
let sa = {};
let lib_plugin_track_timer = 0;
let js_uniapp_version = 'js_uniapp:0.1.3';
//检查是否是支持的平台,如果不支持就使用commonAPI
if (typeof bridgeAPI === 'undefined') {
console.error('神策 uni-app SDK 不支持当前平台,数据不会发送');
sa = commonAPI;
} else {
sa = bridgeAPI;
/*
做一次common-api的遍历
如果bridgeAPI都实现了,就结束
如果bridgeAPI没有实现,从instance中获取,如果还没有就=common-api
*/
Object.keys(commonAPI).forEach((key) => {
if (!(key in bridgeAPI)) {
if (typeof bridgeAPI.instance === 'object' && typeof bridgeAPI.instance[key] === 'function') {
sa[key] = bridgeAPI.instance[key].bind(bridgeAPI.instance);
} else {
sa[key] = commonAPI[key].bind(commonAPI);
}
}
// 如果是track,先加属性
if (key === 'track') {
let oldTrack = sa.track;
sa.track = function () {
let arr = [].slice.call(arguments, 0);
if (++lib_plugin_track_timer === 1) {
if (typeof arr[1] === 'object' && arr[1] !== null) {
arr[1]['$lib_plugin_version'] = [js_uniapp_version];
} else {
arr[1] = {
$lib_plugin_version: [js_uniapp_version]
};
}
}
return oldTrack.apply(sa, arr);
};
}
});
}
const enableVue3MpClick = get_enableVue3MpClick(sa);
export default sa;
export { enableVue3MpClick };