是否有方法使用javascript獲取移動設備的名稱(例如「John的iPhone」)?從javascript獲取(移動)設備名稱
也許我不是很清楚......我的意思是不是無論是在iPhone,iPad等,但在「設備名稱」 - 例如,它可以是「約翰的iPhone」。
是否有方法使用javascript獲取移動設備的名稱(例如「John的iPhone」)?從javascript獲取(移動)設備名稱
也許我不是很清楚......我的意思是不是無論是在iPhone,iPad等,但在「設備名稱」 - 例如,它可以是「約翰的iPhone」。
你不能在本地瀏覽器中運行一個Web應用程序做到這一點通過JavaScript - JavaScript的一般不具有訪問自己的個人識別數據。
一種可能的方式是使用可能有API訪問設備名稱的框架,如PhoneGap。但是,您只能通過應用商店部署您的網站,所以根據您的使用情況,這可能會非常有限。
最好的辦法是使用用戶代理:
例如,
var ua = navigator.userAgent,
browser = {
iPad: /iPad/.test(ua),
iPhone: /iPhone/.test(ua),
Android4: /Android 4/.test(ua)
};
這會給你訪問之類的東西if(browser.iPad) { /* do stuff */ }
一個很好的簡潔和可擴展的答案,謝謝。 'device'將是變量的一個更合適的名稱。 – Rebs 2016-08-08 01:40:38
我正在使用嵌入式掃描儀的移動設備。爲了能夠使用一些不同設備的JavaScript庫並避免與不同製造商(Zebra,Honeywell,Datalogic,iOs等等)的庫衝突,我需要想出一種方法來識別每個設備,這樣我就可以加載適當的庫,這就是我想出的。享受
getDeviceName: function() {
var deviceName = '';
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
Datalogic: function() {
return navigator.userAgent.match(/DL-AXIS/i);
},
Bluebird: function() {
return navigator.userAgent.match(/EF500/i);
},
Honeywell: function() {
return navigator.userAgent.match(/CT50/i);
},
Zebra: function() {
return navigator.userAgent.match(/TC70|TC55/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Datalogic() || isMobile.Bluebird() || isMobile.Honeywell() || isMobile.Zebra() || isMobile.BlackBerry() || isMobile.Android() || isMobile.iOS() || isMobile.Windows());
}
};
if (isMobile.Datalogic())
deviceName = 'Datalogic';
else if (isMobile.Bluebird())
deviceName = 'Bluebird';
else if (isMobile.Honeywell())
deviceName = 'Honeywell';
else if (isMobile.Zebra())
deviceName = 'Zebra';
else if (isMobile.BlackBerry())
deviceName = 'BlackBerry';
else if (isMobile.iOS())
deviceName = 'iOS';
else if ((deviceName == '') && (isMobile.Android()))
deviceName = 'Android';
else if ((deviceName == '') && (isMobile.Windows()))
deviceName = 'Windows';
if (deviceName != '') {
consoleLog('Devices information deviceName = ' + deviceName);
consoleLog('Devices information any = ' + isMobile.any());
consoleLog('navigator.userAgent = ' + navigator.userAgent);
}
return deviceName;
},
,這是它如何被使用的例子:
initializeHandheldScanners: function() {
if (DeviceCtrl.getDeviceName() == 'Zebra')
DeviceCtrl.initializeSymbolScanner();
if (DeviceCtrl.getDeviceName() == 'Honeywell')
DeviceCtrl.initializeHoneywellScanner();
if (DeviceCtrl.getDeviceName() == 'Datalogic')
DeviceCtrl.initializeDatalogicScanner();
},
你可以說感謝科裏LaViska。我根據他的工作做到了這一點。這裏是鏈接,如果你想了解更多
https://www.abeautifulsite.net/detecting-mobile-devices-with-javascript
取決於移動設備所運行的瀏覽器,但你要知道,如果它是一個iPhone或Android設備或者你究竟需要哪個名字? – 2012-08-13 08:13:40
唯一可以得到的是User-Agent – 2012-08-13 08:19:42
這是一個使用'WURFL.js'的鏈接,免費http://www.smashingmagazine.com/2014/07/01/server-side-device-detection- with-javascript/ – Pierre 2015-03-11 06:53:30