fix(chat): improve in-app keyboard avoidance

This commit is contained in:
2026-06-24 15:13:11 +08:00
parent 853ae776f9
commit 08c954903f
7 changed files with 193 additions and 66 deletions
@@ -1,16 +1,16 @@
/* ChatInputBar 输入栏容器样式(与 Dart chat_input_bar.dart 对齐) */
/* 键盘适配(修复 FB IAB / 小米 WebView 不收缩 100dvh 导致输入框被遮挡)
* --keyboard-height 由 src/hooks/use-keyboard-height.ts 写到 <html>,默认 0px
/* 键盘适配:
* --app-viewport-height 会让聊天容器优先贴合 visualViewport
* --chat-input-lift 是 Android 应用内浏览器的兜底抬升值。
* env(safe-area-inset-bottom) 处理小米全面屏手势条 / iPhone home indicator。
* 二者在原生已正确处理键盘的浏览器(iOS Safari、现代 Chrome Android)上都为 0
* 因此无视觉副作用。 */
* 正常浏览器中 --chat-input-lift 为 0,因此无视觉副作用。 */
.bar {
flex: 0 0 auto;
padding: 0
var(--spacing-lg, 16px)
calc(
var(--spacing-lg, 16px) + var(--keyboard-height, 0px) +
var(--spacing-lg, 16px) + var(--chat-input-lift, 0px) +
env(safe-area-inset-bottom, 0px)
);
background: transparent;