修复IM完整版接入小程序后,聊天页面键盘弹起时,页面高度错误问题

修复方案(请按以下步骤实现)

第一步:MessageInput 组件修复
  1. 禁用原生键盘顶推 :在 <input> 上设置 :adjust-position="false",改为手动控制布局
  2. 监听键盘高度变化 :在组件 mounted / onMounted 中调用 uni.onKeyboardHeightChange
  3. 手动控制 paddingBottom :用一个响应式变量 keyboardHeight 存储键盘高度,在最外层容器上绑定动态样式:
  4. 键盘弹出时收起面板 :在键盘高度 > 0 时,设置 showMorePanel = false
  5. 跨组件通知消息列表 :在键盘高度 > 0 时,通过 uni.$emit('键盘高度变化事件名', height) 通知 MessageList 组件
  6. 组件销毁时清理监听 :在 beforeDestroy(Vue2)/ onUnmounted(Vue3)中调用 uni.offKeyboardHeightChange()
第二步:MessageList 组件修复
  1. 监听键盘事件 :在 mounted / onMounted 中使用 uni.$on('键盘高度变化事件名', callback) 监听
  2. 自动滚动到底部:收到键盘弹出事件后,调用 scrollToBottom
  3. 修复重复滚动不触发问题:如果使用 scroll-into-view,需要先将目标 ID 清空为 '',等 50ms 后再重新赋值目标消息 ID,确保相同值时也能触发滚动
  4. 组件销毁时清理 :在 beforeDestroy / onUnmounted 中调用 uni.$off('键盘高度变化事件名') 配对注销
相关推荐
C++、Java和Python的菜鸟16 小时前
第12章 前端Web进阶(Vue工程化+ElementPlus)
前端·javascript·vue.js
妙码生花16 小时前
让各大 AI 整理出来的前端工程命名最简实践(Vue + TS)
前端·javascript·vue.js
用户8417948145618 小时前
vxe-table 实现编辑列的权限控制:列级与表级权限管理
vue.js
Tian_Hang19 小时前
Vue3 父子组件通讯
前端·javascript·vue.js
C++、Java和Python的菜鸟1 天前
第13章 前端Web实战(Tlias案例)
前端·javascript·vue.js
show4331 天前
多格式导出怎么做?2026免费小程序TXT/SRT实践
开发语言·小程序·c#
qq83443101 天前
Luckysheet,在Vue 等框架中初始化失败(白屏),如何修复
前端·javascript·vue.js
AI砖家1 天前
AI编程—微信小程序开发规范
微信小程序·小程序·notepad++·ai编程
show4331 天前
2026小程序端视频转文字技术对比:识别引擎精度实测
小程序·音视频
满栀5851 天前
Vue.js 接口封装最佳实践:从基础到高级
前端·javascript·vue.js