有没有人知道检测旧设备的方法:
从较新的一套:
我找到了检测iPhone 4和iPad的方法(使用屏幕尺寸)。但是,有没有办法从iPod touch 1G和iPhone 2G告诉iPhone 3GS和iPod touch 3G?
要求:
(iPhone 2G和iPod touch 1G检测示例,使用“隐藏”方法:“iPad和iPhone 3G及更高版本支持H.264 Baseline profile 3.1。早期版本的iPhone支持H.264 Baseline profile 3.0。”来自https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html)。
编辑:我无法绕过这个要求:除此检测外,没有其他解决方案。
答案 0 :(得分:5)
如果数字运算会成为鉴别器......请使用它!只需测试一个小循环(称之为BogoMips),并在0.5秒内知道你要做什么。
定义了硬件和软件,负载几乎已定义(好吧...... iOS 4'多任务'?),所以我认为它非常准确。
编辑我现在只阅读您对性能测试的评论;也许你的确是这个意思,也许你的意思是测量页面渲染时间。我的建议是让一个页面只用 一段javascript,然后将结果存储为cookie并重定向。几乎所有情况都是已知的。
答案 1 :(得分:4)
您是否查看了UserAgent字符串?
例如,我的iPhone 4返回:
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A306 Safari/6531.22.7
Mobile/8A306
是固件版本(只需谷歌8a306 iphone
我认为旧版本的手机无法运行新版本的操作系统。因此,您可以找到一组固件代码,这些代码只显示在较旧版本的手机上。这至少可以让你发现一些差异。
WURFL有一些很好的引用和用户代理字符串,以及如何根据它检测设备和功能。有一个可浏览的列表,他们可能能够正确检测设备。我无法访问旧硬件,因此我无法确认它是否始终有效。您可以使用以下内容浏览设备显示的内容:http://www.tera-wurfl.com/explore/并查看返回的各种UserAgent字符串。
答案 2 :(得分:-2)
Little Benchmark可检测旧型号。基准测试需要5到30毫秒,所以没有真正的问题。
function runBenchmark(){
var time,
init = new Date(),
iterations = 5000;
while (iterations--) {
Math.sqrt(iterations*Math.random());
}
time = new Date - init;
return time;
}
function detectIphoneSpeed () {
if (runBenchmark()<15) {
return "3gs";
} else {
return "3g";
}
}
var iphoneSpeed = detectIphoneSpeed();