uni-app nvue input keyboardheightchange事件异常,focus事件中height一直为0

uni-app nvue input keyboardheightchange事件异常,focus事件中height一直为0

9 回复

HX3.1.2测试正常。可能是测试环境不同你可以提供一下复现项目我们重新测试下

更多关于uni-app nvue input keyboardheightchange事件异常,focus事件中height一直为0的实战教程也可以访问 https://www.itying.com/category-93-b0.html


已定位问题,马上上传

复现项目已上传,具体的问题我在项目注释里已说明

应该是ajust-position的问题

回复 1***@qq.com: 收到

demo示例

HX3.1.3已修复

在nvue中,input组件的keyboardheightchange事件确实存在一些已知问题。针对您遇到的focus事件中height一直为0的情况,这通常是由于以下原因:

  1. 在iOS平台上,键盘高度需要等键盘完全弹出后才能正确获取,初始focus时确实可能返回0

  2. 建议的解决方案是:

  • 监听keyboardheightchange事件而非依赖focus事件
  • 设置一个延时来获取键盘高度(约300ms)
  • 使用plus.keyboard.getHeight()作为备选方案

代码示例:

let timer = null
input.addEventListener('focus', () => {
  timer = setTimeout(() => {
    console.log('键盘高度可能已就绪')
  }, 300)
})

input.addEventListener('keyboardheightchange', (e) => {
  clearTimeout(timer)
  console.log('键盘高度:', e.height)
})
回到顶部