app端加载webview键盘弹出时,屏幕高度发生改变,android 在键盘弹出时会触发 onWindowResize, iOS 键盘弹出时窗口不变,所以不触发。
onLoad() {
var height = 0; //定义动态的高度变量,如高度为定值,可以直接写
uni.getSystemInfo({
success: (sysinfo) => {
height = sysinfo.windowHeight; //自行修改
},
complete: () => {}
});
setTimeout(function() {
wv.setStyle({ //设置web-view距离顶部的距离以及自己的高度,单位为px
top: 20, //此处是距离顶部的高度,应该是你页面的头部
bottom: 0, //防止输入框被软键盘遮挡
height: height - 20, //webview的高度
scalable: true, //webview的页面是否可以缩放,双指放大缩小
})
}, 100); //如页面初始化调用需要写延迟
uni.onWindowResize((res) => {
if (res.size.windowHeight < height) {
//高度缩小
setTimeout(function() {
wv.setStyle({ //设置web-view距离顶部的距离以及自己的高度,单位为px
top: 20, //此处是距离顶部的高度,应该是你页面的头部
bottom: 0, //防止输入框被软键盘遮挡
height: height - 280, //webview的高度
scalable: true, //webview的页面是否可以缩放,双指放大缩小
})
}, 100); //如页面初始化调用需要写延迟
} else {
//高度还原
setTimeout(function() {
wv.setStyle({ //设置web-view距离顶部的距离以及自己的高度,单位为px
top: 20, //此处是距离顶部的高度,应该是你页面的头部
bottom: 0, //防止输入框被软键盘遮挡
height: height - 20, //webview的高度
scalable: true, //webview的页面是否可以缩放,双指放大缩小
})
}, 100); //如页面初始化调用需要写延迟
}
})
}