-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeviceInfo.js
More file actions
40 lines (37 loc) · 944 Bytes
/
deviceInfo.js
File metadata and controls
40 lines (37 loc) · 944 Bytes
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
function getDeviceInfo() {
const userAgent = navigator.userAgent
let deviceType = 'Desktop/Laptop'
let os = 'Unknown'
let osVersion = 'Unknown'
// Detect device type
if (/Mobi|Android/i.test(userAgent)) {
deviceType = 'Mobile'
} else if (/Tablet|iPad/i.test(userAgent)) {
deviceType = 'Tablet'
}
// Detect OS
if (userAgent.includes('Windows NT 10.0')) {
os = 'Windows'
osVersion = '10 or 11'
} else if (userAgent.includes('Windows NT 6.2')) {
os = 'Windows'
osVersion = '8'
} else if (userAgent.includes('Windows NT 6.1')) {
os = 'Windows'
osVersion = '7'
} else if (/Mac/i.test(userAgent)) {
os = 'MacOS'
osVersion = 'Unknown'
} else if (/Android/i.test(userAgent)) {
os = 'Android'
} else if (/iPhone|iPad|iPod/i.test(userAgent)) {
os = 'iOS'
} else if (/Linux/i.test(userAgent)) {
os = 'Linux'
}
return {
deviceType,
os,
osVersion,
}
}