uni-app移动端app打开自动弹出键盘且无法关闭的bug,uni.hideKeyboard()无效

uni-app移动端app打开自动弹出键盘且无法关闭的bug,uni.hideKeyboard()无效

操作步骤:

  • 一直出现

预期结果:

  • 一直出现

实际结果:

  • 一直出现

bug描述:

【报Bug】一直有个bug uniapp做移动端app总是一打开app就会自动弹出软件键盘,不管有没有输入框聚焦,关键是还关不掉uni.hideKeyboard(),有大佬知道怎么解决这个问题吗

信息类别 信息内容
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.2.2
手机系统 Android
手机系统版本号 Android 11
手机厂商 华为
手机机型 红米(测试的安卓机都这样)
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app移动端app打开自动弹出键盘且无法关闭的bug,uni.hideKeyboard()无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

请上传一个能重现问题直接运行的测试工程

更多关于uni-app移动端app打开自动弹出键盘且无法关闭的bug,uni.hideKeyboard()无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我也是这个问题,没找到解决方案

我也遇到了,组件我都关了,刚生成没有,过一天就有了,dcloud太阴了

这个问题通常是由于页面中存在输入框自动聚焦导致的。以下是几种解决方案:

  1. 检查页面中的 input/textarea 元素

    • 确保没有设置 focus 属性或 auto-focus 属性
    • 检查是否有通过 this.$refs.input.focus() 等代码触发了聚焦
  2. 在页面生命周期中处理

    onLoad() {
      // 延迟隐藏键盘
      setTimeout(() => {
        uni.hideKeyboard()
      }, 100)
    }
    
  3. 在 App.vue 的 onLaunch 中处理

    onLaunch() {
      // 针对 Android 的特殊处理
      #ifdef APP-PLUS
      if (uni.getSystemInfoSync().platform === 'android') {
        setTimeout(() => {
          uni.hideKeyboard()
        }, 300)
      }
      #endif
    }
    
  4. 检查 manifest.json 配置

    • 确保没有配置 softinputMode 为 “adjustResize” 以外的模式
    • 可以尝试设置为 “adjustPan”
  5. 使用原生处理

    // 在需要隐藏键盘的地方
    plus.key.hideSoftKeybord()
回到顶部