input输入框设置了inputmode = 'none'隐藏键盘,通过设置 :focus为true获取焦点时软键盘没有隐藏

input输入框设置了inputmode = 'none’隐藏键盘,通过设置 :focus为true获取焦点时软键盘没有隐藏

开发环境 版本号 项目创建方式
Windows Windows 11 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:4.56

手机系统:Android

手机系统版本号:Android 9.0

手机厂商:PDA

手机机型:PDA

页面类型:vue

vue版本:vue2

打包方式:云端

操作步骤:
- 进入页面设置:focus=true,输入框获取焦点

预期结果:
- 软键盘不弹出

实际结果:
- 软键盘弹出

bug描述:
使用PDA设备进入页面的时候需要聚焦输入框但是不弹出键盘,input输入框设置了inputmode = 'none'隐藏键盘,但是通过 :focus 设置为true 获取焦点的时候,软键盘还是弹出

4 回复

hello , 我这里经过实际测试安卓机,并没有出现这个问题,至于你说的PDA设备,暂时无法测试,你尝试一下在安卓机上也会存在这个问题吗?


你好,我这边使用的是Vue3开发的app,设备的版本是安卓9,inputmode = 'none’隐藏键盘之后,手指点击输入框确实是不弹出键盘了,但是通过focus获取焦点的时候还会弹出键盘,我也查阅了网上的很多资料,没有太好的解决方法,只能使用定时器配合uni.hideKeyboard()来隐藏键盘,但是有时候还是会出现键盘闪一下再消失的情况

回复 9***@qq.com: 你现在问题解决了吗?我也遇到这个问题了

这是一个常见的Android平台兼容性问题。对于uni-app中的input组件,即使设置了inputmode=‘none’,在某些Android设备上通过编程方式获取焦点时仍可能触发软键盘。

解决方案建议:

  1. 使用disable-default-padding属性配合focus使用:
<input 
  :focus="true" 
  inputmode="none" 
  disable-default-padding 
  @focus="handleFocus"
/>
  1. 在focus事件中强制隐藏键盘:
handleFocus() {
  if(uni.hideKeyboard) {
    uni.hideKeyboard()
  }
}
回到顶部