Android设备是用户代理字符串的一部分:
Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADR-1212030829) Presto/2.11.355 Version/12.10
Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; SAMSUNG-SGH-I317 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
但是,当将字符串拆分为;
时,设备可能驻留在不同的索引中(有时它不存在)。有没有一种简单的方法可以在Javascript / Ruby中获取设备名称?
更新:只是为了澄清:我有兴趣获取设备名称,而不是Android /版本
答案 0 :(得分:0)
如果它不在那里,就没有办法让它在那里..如果它是“Android x.y.z;”的形式,正则表达式是你的朋友
假设“user_agent”包含用户代理字符串:
Ruby,例如
user_agent[/Android (.*?);/]
变量$ 1将包含版本。
的Javascript
var version = user_agent.match("Android (.*?);")[1];
答案 1 :(得分:0)
如果您只是想知道它是否是Android设备,那么Javascript代码可能很简单:
function isAndroid() {
var ua = navigator.userAgent.toLowerCase();
return (ua.indexOf("android") > -1);
}
如果您对版本感兴趣,请尝试以下Javascript代码:
function getAndroidVersion() {
var androidVersion = -1; // def value, for non-Android devices
var ua = navigator.userAgent.toLowerCase();
var androidIndex = ua.indexOf('android');
if(androidIndex != -1) {
var versionStartIndex = androidIndex + 8;
var versionEndIndex = ua.indexOf(';', versionStartIndex);
androidVersion = parseFloat(ua.slice(versionStartIndex, versionEndIndex));
}
return androidVersion;
}