Apple的iPad Mini在更多方面比我们想要的要小一些,是iPad 2的较小版本。在JavaScript中,window.navigator
对象为Mini和iPad 2公开了相同的值。到目前为止,我检测到差异的测试并未成功。
为什么这很重要?
由于iPad Mini和iPad 2屏幕的像素相同,但实际尺寸(英寸/厘米)不同,因此它们的PPI(像素/英寸)不同。
为了使Web应用程序和游戏提供友好的用户界面,某些元素的大小相对于用户的拇指或手指位置进行了调整,因此,我们可能希望缩放某些图像或按钮以提供更好的用户体验。
到目前为止,我已经尝试过的事情(包括一些非常明显的方法):
window.devicepixelratio
- CSS元素宽度(以厘米为单位)
- CSS媒体查询(例如
resolution
和-webkit-device-pixel-ratio
) - SVG图纸以相似单位
- 在设定的时间内执行各种CSS Webkit转换,并使用来计数渲染的帧
requestAnimFrame
(我希望能够检测到可测量的差异)
我没有主意。你呢?
更新 感谢您到目前为止的答复。我想评论一下有人投票反对将iPad mini与2相比,因为Apple认为这是统治所有人的准则。好的,这就是我的理由,为什么我觉得知道一个人使用的是iPad mini还是iPad 2确实很有意义,然后按照我的意愿进行操作。
The iPad mini is not only a much smaller device (9.7 inch versus 7.9 inch), but its form factor allows for a different usage. The iPad 2 is usually held with two hands when gaming unless you're Chuck Norris. The mini is smaller, but it is also much lighter and allows for gameplay where you hold it in one hand and use another to swipe or tap or whatnot. As a game designer and developer myself, I'd just like to know if it's a mini so I can choose to provide the player with a different controlscheme if I want (for instance after A/B testing with a group of players).
Why? Well, it's a proven fact that the majority of users tend to go with the default settings, so leaving out a virtual thumbstick and putting some other tap-based control on the screen (just giving an arbitrary example here) when the player loads up the game for the first time is what I, and probably other game designers, would love to be able to do.
So IMHO this goes beyond the thick fingers / guidelines discussions and is just something Apple and all other vendors ought to do: allow us to uniquely identify your device and think different instead of following guidelines.
基于关于iPad 2的道格拉斯问题
new webkitAudioContext().destination.numberOfChannels
,我决定进行一些测试。检查
2
在iPad mini上返回的numberOfChannels ,但在装有iOS 5和2
iOS 6的iPad 2上没有检查。然后我尝试检查webkitAudioContext是否可用
同样,此处的iPad Mini和带有iOS 6的iPad 2返回true,而带有iOS 5的iPad 2返回false。
(此测试不适用于台式机,对于台式机,请检查webkitAudioContext是否为函数)。
这是供您试用的代码:http : //jsfiddle.net/sqFbc/