SystemConfig.js
9.1 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
/*
* 全局数据管理
* */
import Loger from 'Loger';
import mdetect from "mdetect";
import GlobalConfig from 'GlobalConfig';
let loger = Loger.getLoger('SystemConfig');
class SystemConfig {
constructor() {
}
//获取系统信息
static getSystemInfo() {
//检查是否是移动端
GlobalConfig.isMobile = mdetect.isMobileUA();
if (GlobalConfig.isMobile) {
loger.warn("当前设备是移动设备");
GlobalConfig.platform = "h5";//移动设备,不是ios和安卓就当H5处理
GlobalConfig.deviceType = 3;
} else {
loger.warn("当前设备是PC");
GlobalConfig.platform = "pc";
GlobalConfig.deviceType = 0;
}
if (mdetect.isIOS()) {
GlobalConfig.platform = "ios";
GlobalConfig.deviceType = 1; //"ios";
}
if (mdetect.isAndroid()) {
GlobalConfig.platform = "android"; //"android";
GlobalConfig.deviceType = 2; //"android";
}
//语言
GlobalConfig.language = "unknown";
if (navigator) {
let language = navigator.language || navigator.browserLanguage;
GlobalConfig.language = language.toLocaleLowerCase();
}
let browserInfo = this.getBrowserInfo();
GlobalConfig.explorer = browserInfo.explorer || "未知";
GlobalConfig.explorerVersion = browserInfo.explorerVersion || "未知";
GlobalConfig.os = this.detectOS();
loger.log("deviceType:" + GlobalConfig.deviceType);
loger.log("language:" + GlobalConfig.language);
loger.log("explorer:" + GlobalConfig.explorer);
loger.log("explorerVersion:" + GlobalConfig.explorerVersion);
loger.log("os:" + GlobalConfig.os);
}
//获取浏览器和信息
static getBrowserInfo() {
let Sys = {};
Sys.explorer = "unknow";
Sys.explorerVersion = "unknow";
try {
let ua = navigator.userAgent.toLowerCase();
let re = /(trident|msie|firefox|chrome|version).*?([\d.]+)/;
let m = ua.match(re);
if (!m) m = ["version/1.0.0", "version", "1.0.0"];
Sys.explorer = m[1].replace(/version/, "safari");
//判断是否是IE11
if (Sys.explorer == "trident") {
Sys.explorer = "IE11"
Sys.explorerVersion = "11.0";
loger.log("IE11", Sys);
}
else if (Sys.explorer == "msie") {
//IE
Sys.explorer = "IE"
Sys.explorerVersion = m[2];
loger.log("IE", Sys);
}
else {
//非IE
loger.log("不是IE", Sys, ua);
Sys.explorerVersion = m[2];
//QQ浏览器
if (ua.match(/qqbrowser/i) == "qqbrowser") {
var str = ua;
var pos = str.indexOf('qqbrowser/');
var result = str.substring(pos + 1);
var result1 = result.indexOf('/');
var result2 = result.substring(result1 + 1);
Sys.explorer = "qqbrowser"
Sys.explorerVersion = result2;
loger.log("QQ浏览器", Sys);
}
//Mac上QQ浏览器
else if (ua.match(/qqbrowserlite/i) == "qqbrowserlite") {
var str = ua;
var pos = str.indexOf('qqbrowserlite/');
var result = str.substring(pos + 1);
var result1 = result.indexOf('/');
var result2 = result.substring(result1 + 1);
Sys.explorer = "qqbrowserlite"
Sys.explorerVersion = result2;
loger.log("Mac上QQ浏览器", Sys);
}
//火狐浏览器
else if (ua.match(/firefox/i) == "firefox") {
var str = ua;
var pos = str.indexOf('firefox/');
var result = str.substring(pos + 1);
var result1 = result.indexOf('/');
var result2 = result.substring(result1 + 1);
Sys.explorer = "firefox"
Sys.explorerVersion = result2;
loger.log("firefox浏览器", Sys);
}
//百度浏览器
else if (ua.match(/bidubrowser/i) == "bidubrowser") {
var str = ua;
var pos = str.indexOf('bidubrowser/');
var result = str.substring(pos + 1);
var result1 = result.indexOf('/');
var result2 = result.substring(result1 + 1);
Sys.explorer = "bidubrowser"
Sys.explorerVersion = result2;
loger.log("百度浏览器", Sys);
}
//2345浏览器
else if (ua.match(/2345explorer/i) == "2345explorer") {
var str = ua;
var pos = str.indexOf('2345explorer/');
var result = str.substring(pos + 1);
var result1 = result.indexOf('/');
var result2 = result.substring(result1 + 1);
Sys.explorer = "2345explorer"
Sys.explorerVersion = result2;
loger.log("2345浏览器", Sys);
}
//猎豹浏览器
else if (ua.match(/lbbrowser/i) == "lbbrowser") {
var str = ua;
var pos = str.indexOf('lbbrowser/');
var result = str.substring(pos + 1);
Sys.explorer = "lbbrowser"
loger("猎豹浏览器", Sys);
}
//搜狗高速浏览器
else if (ua.match(/metasr/i) == "metasr") {
Sys.explorer = "metasr"
loger.log("搜狗高速浏览器", Sys);
}
//欧朋浏览器
else if (ua.match(/opr/i) == "opr") {
var str = ua;
var pos = str.indexOf('opr/');
var result = str.substring(pos + 1);
var result1 = result.indexOf('/');
var result2 = result.substring(result1 + 1);
Sys.explorer = "opr"
Sys.explorerVersion = result2;
loger.log("欧朋浏览器", Sys);
}
//UC浏览器
else if (ua.match(/ubrowser/i) == "ubrowser") {
var str = ua;
var pos = str.indexOf('ubrowser/');
var result = str.substring(pos + 1);
var result1 = result.indexOf('/');
var result2 = result.substring(result1 + 1);
Sys.explorer = "UC浏览器"
Sys.explorerVersion = result2;
loger.log("UC浏览器", Sys);
}
else if (Sys.explorer == "chrome") {
if (window.clientInformation.languages) {
let versionNum=0;
let versions=[];
if(Sys.explorerVersion){
versions=Sys.explorerVersion.split(".");
}
versionNum=parseInt(versions[0]);
loger.log("versionNum", versionNum);
if (window.clientInformation.languages.length > 2) {
Sys.explorer = "chrome";
loger.log("chrome", Sys);
} else if (window.clientInformation.languages.length == 2&&versionNum<=55) {
var _track = 'track' in document.createElement('track');
var webstoreKeysLength = window.chrome && window.chrome.webstore ? Object.keys(window.chrome.webstore).length : 0;
if (_track) {
webstoreKeysLength > 1 ? '360ee' : '360se';
if (webstoreKeysLength > 1) {
//loger.log("当前是360极速浏览器", Sys);
Sys.explorer = "360极速";
} else {
loger.log("当前是360安全浏览器", Sys);
Sys.explorer = "360安全";
}
}
}
//61版本的chrome速浏览器在有的系统会被误认为是360极速,需要处理
if (Sys.explorer == "360极速") {
if (Sys.explorerVersion.indexOf("60.") == 0 ||
Sys.explorerVersion.indexOf("61.") == 0) {
//这个是chrome浏览器
Sys.explorer = "chrome";
}
}
}
}
//safari浏览器
else if (ua.match(/mac/i) == "mac") {
if (ua.match(/safari/i) == "safari") {
Sys.explorer = "safari"
loger.log("safari", Sys);
loger.log(JSON.stringify(Sys));
}
}
}
} catch (err) {
}
return Sys;
}
//系统信息
static detectOS() {
var sUserAgent = navigator.userAgent;
var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");
if (isMac) return "Mac";
var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
if (isUnix) return "Unix";
var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
if (isLinux) return "Linux";
if (isWin) {
var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
if (isWin2K) return "Win2000";
var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;
if (isWinXP) return "WinXP";
var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
if (isWin2003) return "Win2003";
var isWinVista = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
if (isWinVista) return "WinVista";
var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
if (isWin7) return "Win7";
}
return "other";
}
}
export default SystemConfig;