uni-app IOS端键盘收起后有时无法再聚焦

uni-app IOS端键盘收起后有时无法再聚焦

开发环境 版本号 项目创建方式
Windows win10企业版 HBuilderX

示例代码:

<input name="inPrice" class="weui-input" :value="item.inPrice||''" type="digit" placeholder="请输入" @input="item.inPrice=$event.target.value" />

操作步骤:

<input name="inPrice" class="weui-input" :value="item.inPrice||''" type="digit" placeholder="请输入" @input="item.inPrice=$event.target.value" />

预期结果:

应该是要很顺畅的弹出键盘

实际结果:

有时弹出键盘很慢 有时会出现一切点不动,感觉上面有一层东西遮住似的

bug描述:

最近发现uniapp IOS端,点击input(type=digit)弹起键盘后再收起键盘,再点其他的input输入框就点不中了,有时候还会造成一种上面有一层遮罩层的感觉,点不动任何。


更多关于uni-app IOS端键盘收起后有时无法再聚焦的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

基座运行是否可以复现,如果可以的话请上传一个示例工程吧,方便测试

更多关于uni-app IOS端键盘收起后有时无法再聚焦的实战教程也可以访问 https://www.itying.com/category-93-b0.html


基座运行也出现同样的问题。自定义基座包太大了,发不过去

回复 m***@126.com: 不是发自定义基座包,是发一个uniapp的示例工程,可以新建一个项目复现一下这个问题

回复 DCloud_iOS_XHY: 一个页面多建几个上面我发的input就可以了

这是一个在uni-app iOS端常见的键盘交互问题,主要与iOS WebView的键盘收起机制和页面重绘有关。以下是几种有效的解决方案:

  1. 使用@blur强制触发页面重绘
<input 
  @blur="handleBlur"
  @focus="handleFocus"
/>
methods: {
  handleBlur() {
    // 强制触发页面重绘
    this.$nextTick(() => {
      // 可选的滚动复位
      window.scrollTo(0, 0)
    })
  }
}
  1. 改用uni-app原生输入组件
<uni-easyinput 
  type="digit" 
  v-model="item.inPrice" 
  placeholder="请输入"
/>
  1. 设置键盘收起时的延迟处理
handleBlur() {
  setTimeout(() => {
    document.body.style.overflow = 'auto'
  }, 100)
}
回到顶部