在javascript中获取确切的物理移动分辨率

时间:2016-05-26 07:36:52

标签: javascript css mobile browser

我正在构建一个页面,向用户显示尽可能多的有关其设备的信息。对于移动设备,物理分辨率与浏览器解释的分辨率不同,因为否则高分辨率设备将无法很好地显示页面。

例如,我的Moto X Style的分辨率为1440 x 2560像素,甚至高于大多数PC显示器。它按设备像素比例缩小,在我的设备上设置为3.5。这使得解释的解决方案成为了解决方案。 412 x 732像素

对于许多设备,将screen.[width/height]的解释分辨率相乘并乘以window.devicePixelRatio就足够了。然而在我的情况下,这只是一个估计,并出现在1442 x 2562,可能是因为四舍五入。

有没有确定的方法来获得这个确切的价值?或者可以抑制这些值的舍入?任何想法都表示赞赏。

3 个答案:

答案 0 :(得分:1)

您可以尝试此操作以获取当前设备的精确高度

var w = window.innerWidth;
var h = window.innerHeight;

答案 1 :(得分:1)

查看此页面:

http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html

显然,它会因设备而发生变化,但您在正确的轨道上:

Math.round(screen.width||height*window.devicePixelRatio)

祝你好运。

答案 2 :(得分:0)

我使用它们来获取浏览器窗口的宽度/高度。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@android:color/white" />
<stroke
  android:width="3dp"
  android:color="@android:color/black" />
</shape>