forked from playcanvas/engine
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplatform.js
More file actions
99 lines (83 loc) · 2.27 KB
/
platform.js
File metadata and controls
99 lines (83 loc) · 2.27 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
pc.extend(pc, function () {
/**
* @name pc.platform
* @namespace
* @description global namespace that stores flags regarding platform environment and features support
* @example
* if (pc.platform.touch) {
* // touch is supported
* }
*/
var platform = {
/**
* @name pc.platform.desktop
* @description is it a desktop or laptop device
*/
desktop: false,
/**
* @name pc.platform.mobile
* @description is it a mobile or tablet device
*/
mobile: false,
/**
* @name pc.platform.ios
* @description if it is iOS
*/
ios: false,
/**
* @name pc.platform.android
* @description if it is Android
*/
android: false,
/**
* @name pc.platform.windows
* @description if it is Windows
*/
windows: false,
/**
* @name pc.platform.cocoonjs
* @description if it is CocoonJS
*/
cocoonjs: false,
/**
* @name pc.platform.xbox
* @description if it is Xbox
*/
xbox: false,
/**
* @name pc.platform.gamepads
* @description if platform supports gamepads
*/
gamepads: false,
/**
* @name pc.platform.touch
* @description if platform supports touch input
*/
touch: false
};
var ua = navigator.userAgent;
if (/(windows|mac os|linux|cros)/i.test(ua))
platform.desktop = true;
if (/xbox/i.test(ua))
platform.xbox = true;
if (/(windows phone|iemobile|wpdesktop)/i.test(ua)) {
platform.desktop = false;
platform.mobile = true;
platform.windows = true;
} else if (/android/i.test(ua)) {
platform.desktop = false;
platform.mobile = true;
platform.android = true;
} else if (/ip([ao]d|hone)/i.test(ua)) {
platform.desktop = false;
platform.mobile = true;
platform.ios = true;
}
if (navigator.isCocoonJS)
platform.cocoonjs = true;
platform.touch = 'ontouchstart' in window;
platform.gamepads = 'getGamepads' in navigator;
return {
platform: platform
};
}());