官方文档中wx.getSystemInfo()和wx.getSystemInfoSync()的说明十分简单,麻烦具体说明一下两者的区别,例如在什么场景下使用wx.getSystemInfo()或wx.getSystemInfoSync()。
其次,screenHeight(screenWidth)和windowHeight(windowWidth)这两者又有什么联系,“可使用”是指什么呢?
目前遇到一个问题,在一个下拉加载的列表中,使用screenHeight可以正常显示,使用windowHeight在大屏手机可以正常显示,但是小屏手机(例如iPhone5)中,底部会留有一大块空白区域。
最后,一个屏幕的长度像素是screenHeight * pixelRatio吗?
谢谢解答!(((((ી(・◡・)ʃ)))))
你没有搞清楚pixelRatio设备像素比的含义,可以参照web API的devicePixelRatio。请先查阅资料了解一下,不要想当然。
单位都是px
之前说的不太完整,windowHeight不包括通知栏、标题栏和tabBar,他的单位是px。rpx的计算不是直接乘pixelRatio。请参考WXSS文档
getSystemInfo 是异步方法,getSystemInfoSync是同步方法
screenHeight 是屏幕总高度,windowHeight是webview可显示区域高度,不包含顶部标题栏
文档确实没有解释好pixelRatio和rpx,px的关系。
如果很多人都看了想当然的得出错误的结论。那么就是文档说的不够清楚
哦哦,我找到问题所在了。目前我列表的高度取的是:screenHeight*pixelRatio(这是正常的),但按照你的说法,其实我应该取windowHeight*pixelRatio(在iphone5底部有空白区域)。我重新把获取的设备信息打印出来看了一下,发现iphone5和iphone6的pixelRatio是一样的,这个值按照比例换算来说应该不一样的吧?
------这是iPhone5的
------这是iPhone6的
嗯嗯,那screenHeight和windowHeight的区别是这样对吗?
1.作用域不同:screenHeight是整合手机屏幕的高度,windowHeight是webview(不包括手机通知栏、小程序标题栏和tabBar)的高度;
2.单位不同:screenHeight的单位是rpx,windowHeight的单位是px;
而screenWidth和windowWidth只有单位不同对吧?
最后,结合WXSS的文档,rpx的计算不是rpx = px * pixelRatio 吗?例如iphone6,750rpx = 375px * 2。
如果要实现一个高度与webview一样的下拉加载列表,单位用rpx,是不是这样子取值呢?
1.window_height = screenHeight
2.window_height = windowHeight * pixelRatio
@晨 谢谢解答。那我这样理解对吗?
这样的话windowHeight应该有点兼容性的问题哦,目前遇到一个问题,我在webview里面做了一个下拉加载的列表。列表的高度,使用screenHeight可以正常显示;使用windowHeight在大屏手机iPhone6可以正常显示(底部也有一点点留白,但还没有影响),但是小屏手机iPhone5中,底部会留有一大块空白区域(很大一块,差不多占了屏幕1/3)。
样式代码:scroll-view style="height: {{window_height - 80}}rpx; margin-top: 80rpx;"
window_height = windowHeight(或screenHeight) * pixelRatio;
(꒪ꇴ꒪(꒪ꇴ꒪ ;)哈?你说的此pixelRatio非彼pixelRatio,那pixelRatio到底是啥啊?web API的devicePixelRatio只有wx.getSystemInfo()和wx.getSystemInfoSync()出现,文档上的说明就“设备像素比”5个字,我们很难弄懂啊,我已经通篇阅读过开发文档了,结合wxss那一篇的说明,得出结论就是这样滴,不是想当然。