-
Notifications
You must be signed in to change notification settings - Fork 0
/
getOs.js
45 lines (43 loc) · 975 Bytes
/
getOs.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
/**
*
* @desc 获取操作系统类型
* @return {String}
*/
function getOS() {
const userAgent = ('navigator' in window
&& 'userAgent' in navigator
&& navigator.userAgent.toLowerCase())
|| '';
const vendor = ('navigator' in window
&& 'vendor' in navigator
&& navigator.vendor.toLowerCase())
|| '';
const appVersion = ('navigator' in window
&& 'appVersion' in navigator
&& navigator.appVersion.toLowerCase())
|| '';
if (
/iphone/i.test(userAgent)
|| /ipad/i.test(userAgent)
|| /ipod/i.test(userAgent)
) {
return 'ios';
}
if (/android/i.test(userAgent)) {
return 'android';
}
if (/win/i.test(appVersion) && /phone/i.test(userAgent)) {
return 'windowsPhone';
}
if (/mac/i.test(appVersion)) {
return 'MacOSX';
}
if (/win/i.test(appVersion)) {
return 'windows';
}
if (/linux/i.test(appVersion)) {
return 'linux';
}
return false;
}
module.exports = getOS;