1***@163.com
1***@163.com
  • 发布:2026-06-23 17:52
  • 更新:2026-06-23 17:53
  • 阅读:25

关于uniapp键盘疯狂收起弹出bug一直没有解决问题

分类:uni-app

原帖地址:https://ask.dcloud.net.cn/question/220303
工作人员:DCloud_UNI_LXH
我把问题相关信息提供给了工作人员,包括:出问题的app、出问题的视频,工作人员测试了一款苹果手机没复现问题。但是这个问题确实是存在的,今天又有好几款手机出现了这个问题。

设备1:iphone 14 pro 18.7.7系统
设备2:iphone 17
设备3:iphone 17 pro max
设备4:iphone 16 pro

早在 2024 年我们项目就遇到过 iOS 端 textarea 软键盘相关故障,当时同样出现官方测试无法复现、问题最终搁置未彻底解决的情况;本次新故障表现为点击 textarea 输入框后,软键盘反复自动弹出、收起,循环抖动,严重影响用户正常输入操作,使用的是 uni-app 官方 textarea 基础组件,Vue2 云端打包项目。
目前该 bug 属于高概率偶发问题,无法稳定 100% 复现,但大量真实用户设备持续反馈故障,并非个别特例。这里想客观说明一个诉求:
平台日常处理可稳定复现的 bug 无可厚非,但这类多机型批量出现、仅难以固定复现流程的线上疑难问题,同样会直接影响终端用户使用体验,我们作为业务开发者没有底层源码调试能力,无法自主定位 iOS 原生键盘交互层面的兼容异常,只能依赖官方提供排查思路、针对性兼容方案。
希望官方可以针对 iOS 多机型偶发键盘反复弹起收起这类共性历史问题,提供更多专项排查手段、兼容适配方案,而不是仅以单次测试未复现为由搁置问题。附件部分是今天一部分出现键盘bug问题的视频。

2026-06-23 17:52 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

针对你描述的这个 iOS 端 textarea 键盘反复弹出、收起、循环抖动的问题,这是一个非常典型的长期存在于 uni-app App 端的疑难杂症。结合你提供的设备信息和历史反馈,这通常不是单一原因造成的,而是 iOS 系统 Webview 与原生键盘交互的底层兼容性问题。

根据知识库中的类似案例和官方回复,这里提供几个排查思路和可能的解决方案,你可以逐步尝试:

1. 检查 softinputMode 配置(最优先尝试)

pages.json 中,对你的页面配置 softinputMode 属性。默认是 adjustPan,你可以尝试切换为 adjustResize 看看是否能缓解键盘抖动和上推的问题。

{  
  "path": "pages/your-page/your-page",  
  "style": {  
    "app-plus": {  
      "softinputMode": "adjustResize"  
    }  
  }  
}

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
注意adjustResize 模式在部分安卓机型上可能会有闪屏或页面挤压的问题,需要你根据项目情况权衡。


2. 避免在键盘事件回调中主动调用 uni.hideKeyboard()

在知识库的 ask 社区案例中,有开发者反馈在 subNvue 页面中,连续两次调用 uni.hideKeyboard() 或在不恰当的时机隐藏键盘,会导致 iOS 端键盘弹出后立即收起

请检查你的代码中:

  • 是否监听了键盘高度变化事件(如 @keyboardheightchangeuni.onKeyboardHeightChange
  • 当键盘高度小于某个阈值时,是否自动调用了 uni.hideKeyboard()
  • 是否在 blur 事件、页面跳转或其他生命周期中手动隐藏了键盘

如果存在以上逻辑,建议先全部注释掉,仅在用户明确点击“完成”或“发送”按钮时再调用 uni.hideKeyboard()


3. 尝试使用 uni-easyinput 组件

uni-easyinput 是 uni-ui 官方提供的增强输入框组件,它对 inputtextarea 的原生交互做了一定程度的封装和优化。你可以尝试将原生的 <textarea> 替换为 <uni-easyinput type="textarea"> 来测试是否还会出现该问题。


4. 关于 nvue 页面的说明

需要特别提醒你:如果你当前使用的是 nvue 页面,根据优先知识库中的官方回复,nvue 已不再维护。对于这类严重影响体验的底层系统兼容性 Bug,官方建议迁移到 vue 页面或升级到 uni-app x 来解决。这可能是彻底解决问题的最终方案。


5. 社区插件辅助(临时方案)

如果以上方法均无效,你可以去 DCloud 插件市场搜索是否有针对 iOS 键盘异常的补丁插件。比如有一个 基于uniapp的input防iOS软键盘异常弹起带清除功能的输入框 的插件,专门用于规避 iOS 上键盘异常弹出的问题,虽然它主要针对 input,但你可以参考其实现思路或联系作者咨询是否支持 textarea


6. 继续向官方反馈

对于这类多机型偶发、难以固定复现流程的底层 Bug,作为开发者确实很难独立定位。你可以继续在 DCloud 问答社区 保持问题更新:

  • 提供更多复现时的详细操作环境(如:是否在微信小程序、H5 还是 App 中?是否使用了 subNvuewebview?)
  • 收集更多用户设备的系统日志(如果有条件)
  • 关联提问之前的历史帖子(如你提到的 问题 ID: 220303

希望这些排查方向能帮助你缓解或定位问题。如果在尝试过程中有新的发现,欢迎随时补充信息。

内容为 AI 生成,仅供参考

要回复问题请先登录注册