uniapp踩坑 之 input组件 adjust-position属性兼容性问题

5,317 阅读1分钟

一、问题描述

在做内嵌APP内的h5时遇到了uniapp的input组件 在安卓机上,进行输入弹出键盘时,页面没有上推从而键盘挡住了输入框的现象;而在ios机型上输入时键盘弹出页面上推,输入框露出不会被遮挡。

二、问题排查

uniapp官网: uniapp.dcloud.net.cn/component/i…

截屏2023-08-14 17.48.53.png

原因是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)
    }
  }