diff --git a/root/NEUIKit/pages/Chat/message/message-input.vue b/root/NEUIKit/pages/Chat/message/message-input.vue index 8b10ed9..b9b7e4f 100644 --- a/root/NEUIKit/pages/Chat/message/message-input.vue +++ b/root/NEUIKit/pages/Chat/message/message-input.vue @@ -363,51 +363,58 @@ const keyHeight = ref(350); const msgKeyHeight = ref("100%"); // 在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 - const availableHeight = systemInfo.windowHeight - e.detail.height - safeBottom - 120; - 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 - } -}; +// 在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 handleInputBlur = () => { isFocus.value = false;