我想告訴客戶系統的電池狀態,並在我的網頁時鐘在小部件如果它是一臺筆記本電腦。
如果是桌面,我不想顯示電池狀態。
時鐘部件工作正常。檢測客戶端系統是否是筆記本或臺式機使用JavaScript
另外,我可以通過使用navigator.getBattery()
獲取電池詳細信息。
但是,如果它是桌面,我不想顯示小部件。
那麼,如何檢測使用JavaScript的客戶端使用桌面還是筆記本電腦?
以下是navigator
的內容,但沒有詳細信息檢測它是筆記本電腦還是臺式機。
console.log(navigator);
{
"vendorSub": "",
"productSub": "20030107",
"vendor": "Google Inc.",
"maxTouchPoints": 0,
"hardwareConcurrency": 4,
"appCodeName": "Mozilla",
"appName": "Netscape",
"appVersion": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"platform": "Win32",
"product": "Gecko",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"language": "en-GB",
"languages": [
"en-US",
"en"
],
"onLine": true,
"cookieEnabled": true,
"doNotTrack": null,
"geolocation": {
"getCurrentPosition": function getCurrentPosition() { [native code] },
"watchPosition": function watchPosition() { [native code] },
"clearWatch": function clearWatch() { [native code] }
},
"mediaDevices": {
"enumerateDevices": function enumerateDevices() { [native code] },
"getSupportedConstraints": function getSupportedConstraints() { [native code] },
"getUserMedia": function getUserMedia() { [native code] },
"addEventListener": function addEventListener() { [native code] },
"removeEventListener": function removeEventListener() { [native code] },
"dispatchEvent": function dispatchEvent() { [native code] }
},
"plugins": {
"0": [object Plugin],
"1": [object Plugin],
"2": [object Plugin],
"3": [object Plugin],
"4": [object Plugin],
"length": 5,
"item": function item() { [native code] },
"namedItem": function namedItem() { [native code] },
"refresh": function refresh() { [native code] }
},
"mimeTypes": {
"0": [object MimeType],
"1": [object MimeType],
"2": [object MimeType],
"3": [object MimeType],
"4": [object MimeType],
"5": [object MimeType],
"6": [object MimeType],
"length": 7,
"item": function item() { [native code] },
"namedItem": function namedItem() { [native code] }
},
"webkitTemporaryStorage": {
"queryUsageAndQuota": /**id:16**/ function queryUsageAndQuota() { [native code] },
"requestQuota": /**id:17**/ function requestQuota() { [native code] }
},
"webkitPersistentStorage": {
"queryUsageAndQuota": /**ref:16**/,
"requestQuota": /**ref:17**/
},
"serviceWorker": /**error accessing property**/,
"getBattery": function getBattery() { [native code] },
"sendBeacon": function sendBeacon() { [native code] },
"requestMediaKeySystemAccess": function requestMediaKeySystemAccess() { [native code] },
"getGamepads": function getGamepads() { [native code] },
"webkitGetUserMedia": function webkitGetUserMedia() { [native code] },
"javaEnabled": function javaEnabled() { [native code] },
"vibrate": function vibrate() { [native code] },
"requestMIDIAccess": function requestMIDIAccess() { [native code] },
"credentials": {
"get": function get() { [native code] },
"store": function store() { [native code] },
"requireUserMediation": function requireUserMediation() { [native code] }
},
"storage": {
"persisted": function persisted() { [native code] },
"persist": function() { [native code] }
},
"permissions": {
"query": function query() { [native code] }
},
"presentation": {
"defaultRequest": null
},
"getUserMedia": function getUserMedia() { [native code] },
"registerProtocolHandler": function registerProtocolHandler() { [native code] },
"unregisterProtocolHandler": function unregisterProtocolHandler() { [native code] }
}
您可以使用[電池API](https://developer.mozilla .org/en-US/docs/Web/API/Battery_Status_API)來獲取狀態,但無法判斷該設備是臺式機還是筆記本電腦。 – Pointy
沒有辦法將設備識別爲筆記本電腦/臺式機。 – BenM
@Pointy - '從Firefox 52開始,電池狀態API僅在Chrome /特權代碼中可用 –