前端如何获取设备的 DPI/PPI ?

2017-08-07 10:54:15 +08:00
 lqzhgood

没有 iPhone 的前端真是个忧伤的事情。想看看做出的 界面在 iPhone 上的 真实效果 是什么样子的。

真实效果 的定义是:

任意一台显示器 屏幕上图片的大小都是 真实物理单位( iPhone6 尺寸为例)
宽 2.64 inches (67.1 mm)
高 5.44 inches (138.3 mm)

首先就需要获取到设备屏幕的 DPI/PPI, 然后计算出图片的 px,再显示。
那么问题来了,前端如何获取 设备的 DPI/PPI

P.S

在 MDN 查过了 length 的定义。
https://developer.mozilla.org/zh-CN/docs/Web/CSS/length

width:1in / 1cm ;  其中 in mm cm 都是相对于 1in == 96px 的情况下定义的。并非真实物理的 1 in 长度.

3431 次点击
所在节点    前端开发
9 条回复
paloalto
2017-08-07 11:22:28 +08:00
xcode 有个 Simulator,可以在电脑上模拟显示 iOS 设备。

你想问的是不是这个:
How to access screen display ’ s DPI settings via javascript?
https://stackoverflow.com/questions/476815/how-to-access-screen-display-s-dpi-settings-via-javascript
noe132
2017-08-07 11:44:21 +08:00
前端不需要关心设备的 dpi 吧。
css px 和 physical px 是根据缩放比例对应的。
lqzhgood
2017-08-07 11:53:34 +08:00
@paloalto
这个链接我刚才页搜到了,说的是相关问题,但是也并没有解决问题。
下面都是说用 witdh:1in; 然后测量这个 dom 的 width -> px,来换算。但是 1in 只是相对于 96px 定义,并非真实物理的 1 英尺。

xcode 确实是个解决办法,但是对于这样简单的需求确实过重了。不过给了个很好的思考方向。

目前考虑用 winApi 导出 Dpi 为 JSON,再 script 引入, 然后做成批处理应该就可以了。
3Q~
lqzhgood
2017-08-07 11:54:44 +08:00
@noe132
我想知道我的页面在 真实尺寸的 iPhone 上显示是什么效果。 所以需要知道 DPI。
平时确实是不用处理的,只因为我有了个奇怪的想法。。。
ss098
2017-08-07 12:28:40 +08:00
SoloCompany
2017-08-07 13:18:00 +08:00
如果只是希望实时预览页面效果,不需要 XCode 啊
Safari - 开发 - 进入响应式设计模式 (CMD+OPT+R)
lqzhgood
2017-08-07 14:36:43 +08:00
@SoloCompany 那个只是 100% px 显示,不是 100% 物理单位显示。
说白了 Chrome F12 这些显示的窗口和你 iPhone 的屏幕不一样大
SoloCompany
2017-08-07 15:09:03 +08:00
@lqzhgood 那为何 XCode 就会让你产生是 1:1 的错觉?
lqzhgood
2017-08-08 00:06:44 +08:00
@SoloCompany
是不一样大啊 有什么问题么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/380973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX