uni-app subNVue 里有input组件focus时 点击mask隐藏subNVue IOS键盘不会收起
uni-app subNVue 里有input组件focus时 点击mask隐藏subNVue IOS键盘不会收起
项目属性 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Mac |
PC开发环境操作系统版本号 | bigsur 11.1 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.1.2 |
手机系统 | iOS |
手机系统版本号 | iOS 13.4 |
手机厂商 | 苹果 |
手机机型 | 7p |
页面类型 | nvue |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- subNVue内有input,focus后打开软键盘,点击mask隐藏subNVue,但是软键盘不会关闭
预期结果:
- 取消focus状态,隐藏软键盘
实际结果:
- focus状态,软键盘依然存在
bug描述:
- 由于官方没有提供mask点击事件api,导致无法手动关闭软键盘
更多关于uni-app subNVue 里有input组件focus时 点击mask隐藏subNVue IOS键盘不会收起的实战教程也可以访问 https://www.itying.com/category-93-b0.html
请提供简单、可稳定复现、能直接运行的完整示例(上传附件),方便我们快速排查问题哦。
【bug优先处理规则】https://ask.dcloud.net.cn/article/38139
更多关于uni-app subNVue 里有input组件focus时 点击mask隐藏subNVue IOS键盘不会收起的实战教程也可以访问 https://www.itying.com/category-93-b0.html
已提供DEMO
回复 叫我白老师: 已反馈给相关组,感谢您的反馈!
Bug 已经修复 下个版本会发 同时你的示例代码里 你在 subNVue.hide(); 之前 应该也掉一下 input的 blur()
submit(){
const subNVue = uni.getCurrentSubNVue();
this.$refs.input.blur();
subNVue.hide();
}
好的,感谢您
这是一个iOS平台上subNVue与软键盘交互的已知问题。当subNVue包含input组件时,点击mask隐藏subNVue后,iOS键盘不会自动收起。
解决方法:
- 在隐藏subNVue前,手动调用blur方法:
// 获取input元素
const input = this.$refs.inputRef
// 失去焦点
input.blur()
// 隐藏subNVue
this.subNVue.hide()
- 或者使用uni.hideKeyboard()强制关闭键盘:
uni.hideKeyboard()
this.subNVue.hide()
- 也可以监听subNVue的hide事件:
this.subNVue.addEventListener('hide', () => {
uni.hideKeyboard()
})