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设备上通过编程方式获取焦点时仍可能触发软键盘。
解决方案建议:
- 使用
disable-default-padding
属性配合focus
使用:
<input
:focus="true"
inputmode="none"
disable-default-padding
@focus="handleFocus"
/>
- 在focus事件中强制隐藏键盘:
handleFocus() {
if(uni.hideKeyboard) {
uni.hideKeyboard()
}
}