屏幕高度问题
小程序中有时候需要获取屏幕高度使用,简单的通过wx.getSystemInfo即可获取到手机的系统信息
wx.getSystemInfo中有3个高度,分别是:
screenHeight:屏幕高度
windowHeight:窗口高度
statusBarHeight:状态栏高度
对于小程序来说屏幕的高度 = 状态栏高度 + 导航栏高度 + 窗口高度 + 标签栏高度,如下图所示:
所以我们想要获取窗口可使用高度时,在含有tabbar标签栏的页面中可以直接通过wx.getSystemInfo获取windowHeight来使用,使用方法:
app.js
App({
onLaunch: function() {
// 获取屏幕高度
wx.getSystemInfo({
success: function(res) {
that.globalData.windowHeight = res.windowHeight
}
})
},
globalData: {
windowHeight: null,
}
})
index.js
Page({
data: {
windowHeight: app.globalData.windowHeight,
},
})
index.wxml
<scroll-view scroll-y style='height:{{windowHeight}}px;'>
在不含有tabbar标签栏的页面中屏幕可使用高度的获取有两种方式
1、windowHeight窗口高度 + tabbar标签栏高度
2、screenHeight屏幕高度 - statusBarHeight状态栏高度 - 导航栏高度
iPhoneX 适配问题
我们这里先简单总结一下 iPhone X 屏幕的基础数据,方便后续在小程序开发中进行适配。
-
屏幕尺寸:5.8 英寸(对角线)
-
屏幕物理分辨率:1125px × 2436px,458 ppi
-
实际开发适配尺寸:375pt × 812pt,@3x
此外,由于在 iPhone X 屏幕顶部状态栏区域有“齐刘海”,以及在屏幕底部增加了“操作条”,如下图所示,因此,我们在开发中需要注意安全区域的问题。
在小程序页面开发中,涉及到需要适配 iPhone X 的地方主要有:导航栏(NavigationBar),标签栏(TabBar)以及页面底部的吸底按钮。
相对于iPhone6来说,iPhoneX的导航栏高度并没有改变,依然是88px,增加的是statusBarHeight状态栏高度,
iPhone6:
iPhoneX:
而底部吸盘的高度不好确定,所以在不含有tabbar标签栏的页面中屏幕可使用高度的获取就用第二种方式较好
屏幕可使用高度 = screenHeight屏幕高度 - statusBarHeight状态栏高度 - 导航栏高度
但小程序官方的tabbar是给底部吸盘预留了空间了,所以可以根据开发者的具体情况决定是否获取全部可使用高度