diff --git a/root/NEUIKit/pages/Chat/message/message-input.vue b/root/NEUIKit/pages/Chat/message/message-input.vue index b9b7e4f..63c91b3 100644 --- a/root/NEUIKit/pages/Chat/message/message-input.vue +++ b/root/NEUIKit/pages/Chat/message/message-input.vue @@ -63,7 +63,7 @@ - + @@ -361,59 +361,73 @@ const pushUp = ref(false); const keyHeight = ref(350); const msgKeyHeight = ref("100%"); +const ssff = ref(uni.getWindowInfo().safeArea.top); +console.log('安全域高度安全域高度安全域高度安全域高度安全域高度安全域高度',ssff); + +// 在message-input.vue的keyboardheightchange事件中修改 // 在message-input.vue的keyboardheightchange事件中修改 -// 在message-input.vue的keyboardheightchange事件中修改 - const keyboardheightchange = (e) => { - keyHeight.value = e.detail.height; - uni.$emit(events.KeyboardEvent, e.detail.height); - uni.$emit('KeyboardHeight', e.detail.height); - - if (e.detail.height === 0) { - writeStyle.value = "bottom: 0"; - uni.$emit('msgKeyHeight', '100%'); // 键盘收起时恢复全屏高度 - } else { - // 隐藏其他面板 - emojiVisible.value = false; - extVisible.value = false; - audioPanelVisible.value = false; - sendMoreVisible.value = false; - - // 统一计算安全区域(适配APP和小程序) - const systemInfo = uni.getSystemInfoSync(); - const safeBottom = systemInfo.safeAreaInsets?.bottom || 0; - // 计算会话区域可用高度 = 屏幕高度 - 键盘高度 - 安全区域底部 - - // 输入框定位适配 - // #ifdef MP-WEIXIN - if (systemInfo.platform === 'ios') { - const availableHeight = systemInfo.windowHeight - e.detail.height - safeBottom - 64; - uni.$emit('msgKeyHeight', availableHeight); // 传递实际可用高度 - }else{ - const availableHeight = systemInfo.windowHeight - e.detail.height - safeBottom - 94; - uni.$emit('msgKeyHeight', availableHeight); // 传递实际可用高度 - } - - - writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`; - // #endif - // #ifdef APP-PLUS - // 区分安卓和苹果平台 - let availableHeight, bottomValue; - if (systemInfo.platform === 'ios') { - // 苹果设备 - availableHeight = systemInfo.windowHeight - e.detail.height - safeBottom; - bottomValue = e.detail.height - safeBottom - 34; - } else { - // 安卓设备 - availableHeight = systemInfo.windowHeight - e.detail.height - safeBottom - 34; - bottomValue = e.detail.height - safeBottom; - } - - uni.$emit('msgKeyHeight', availableHeight); // 传递实际可用高度 - writeStyle.value = `bottom: ${bottomValue}px`; - // #endif - } + const keyboardheightchange = (e) => { + keyHeight.value = e.detail.height; + uni.$emit(events.KeyboardEvent, e.detail.height); + uni.$emit('KeyboardHeight', e.detail.height); + + if (e.detail.height === 0) { + writeStyle.value = "bottom: 0"; + uni.$emit('msgKeyHeight', '100%'); // 键盘收起时恢复全屏高度 + } else { + // 隐藏其他面板 + emojiVisible.value = false; + extVisible.value = false; + audioPanelVisible.value = false; + sendMoreVisible.value = false; + + const systemInfo = uni.getSystemInfoSync(); + // let safeBottom = 0; + + // // #ifdef MP-WEIXIN + // if (systemInfo.safeAreaInsets && systemInfo.safeAreaInsets.bottom) { + // safeBottom = systemInfo.safeAreaInsets.bottom; + // } + // // #endif + + // // #ifdef APP-PLUS + // if (systemInfo.safeAreaInsets && systemInfo.safeAreaInsets.bottom) { + // safeBottom = systemInfo.safeAreaInsets.bottom; + // } + // // #endif + + // // 输入框定位适配 + // // #ifdef MP-WEIXIN + // if (systemInfo.platform === 'ios') { + // const availableHeight = systemInfo.windowHeight - e.detail.height - ssff.value; + // uni.$emit('msgKeyHeight', availableHeight); // 传递实际可用高度 + // }else{ + // const availableHeight = systemInfo.windowHeight - e.detail.height - ssff.value; + // uni.$emit('msgKeyHeight', availableHeight); // 传递实际可用高度 + // } + + const availableHeight = systemInfo.windowHeight - e.detail.height - ssff.value; + uni.$emit('msgKeyHeight', availableHeight); // 传递实际可用高度 + writeStyle.value = `bottom: calc(${e.detail.height}px - env(safe-area-inset-bottom))`; + // #endif + // #ifdef APP-PLUS + // 区分安卓和苹果平台 + let availableHeight, bottomValue; + if (systemInfo.platform === 'ios') { + // 苹果设备 + availableHeight = systemInfo.windowHeight - e.detail.height - safeBottom; + bottomValue = e.detail.height - safeBottom - 34; + } else { + // 安卓设备 + availableHeight = systemInfo.windowHeight - e.detail.height - safeBottom - 34; + bottomValue = e.detail.height - safeBottom; + } + + uni.$emit('msgKeyHeight', availableHeight); // 传递实际可用高度 + writeStyle.value = `bottom: ${bottomValue}px`; + // #endif + } }; const handleInputBlur = () => { diff --git a/root/NEUIKit/pages/Chat/message/message-list.vue b/root/NEUIKit/pages/Chat/message/message-list.vue index 794ef30..65eafe7 100644 --- a/root/NEUIKit/pages/Chat/message/message-list.vue +++ b/root/NEUIKit/pages/Chat/message/message-list.vue @@ -151,7 +151,7 @@ screenHeight1.value = res; // 无论是否为小程序,都直接应用高度(移除100%的特殊处理) if (typeof res === 'number') { - msgKeyHeight.value = `${res * 2}rpx`; + msgKeyHeight.value = `${res - 34}px`; } else { msgKeyHeight.value = res; // 处理'100%'的情况 }