修复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('键盘高度变化事件名') 配对注销
相关推荐
河北清兮网络科技23 分钟前
石家庄做一套企业知识库系统多少钱?2026 报价明细
小程序·短剧app·广告联盟
小大宇29 分钟前
Vue知识点-ElementPlus-06 单选+多选+下拉+日期选择
前端·vue.js·elementui
Ai-_Man38 分钟前
Coze扣子还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·1024程序员节
微订校园外卖平台2 小时前
新手做校园外卖平台:小程序启动顺序与订单链路验收
小程序·外卖系统·本地生活·微订
小大宇3 小时前
Vue知识点-ElementPlus-05 输入框
前端·javascript·vue.js
软件技术NINI3 小时前
基于SpringBoot和Vue的摇滚乐鉴赏网站
vue.js·spring boot·后端·spring·html·毕业设计·毕设
计算机毕设定制辅导-无忧学长3 小时前
《基于物品协同过滤的闲置书换购微信小程序设计开发》
java·vue.js·spring boot·微信小程序·uniapp·闲置书换购微信小程序·物品协同过滤算法
Dwzun4 小时前
基于SpringBoot3+Vue3的油莎豆种植管理系统
java·前端·vue.js·spring boot·后端·python·计算机网络
她说可以呀13 小时前
Vue插槽
前端·javascript·vue.js
qq_4480111614 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js