一、问题描述
在做内嵌APP内的h5时遇到了uniapp的input组件 在安卓机上,进行输入弹出键盘时,页面没有上推从而键盘挡住了输入框的现象;而在ios机型上输入时键盘弹出页面上推,输入框露出不会被遮挡。
二、问题排查
uniapp官网: uniapp.dcloud.net.cn/component/i…
原因是adjust-position属性对于h5兼容性问题,adjust-position设置成true和false对安卓机都不生效
三、解决方案
首先 adjust-position 设置为false 不使用此属性支持的原生能力页面上推,自己手写页面上推逻辑
<input type="number" :adjust-position="false" />
// 监听键盘高度变化事件或者是展开/收起事件(此能力由原生native支持)
window.onKeyboardHeightChange = (height: number) => {
if (height > 0) {
setTimeout(() => {
// uniapp 支持的
uni.pageScrollTo({
scrollTop: 200,
duration: 50,
})
}, 100)
}
}