问题描述
iOS 飞书内置页面打开 botmux「可操作终端」时,使用中文输入法:
- 中文文字可以正常输入;
- 中文输入法状态下,标点符号与数字无法输入到终端;
- 切换为英文输入法后,数字和半角标点可以正常输入;
- iOS 手写输入法也无法输入标点符号与数字。
这会导致移动端操作 CLI 时频繁切换输入法,命令、路径、参数等输入基本不可用。
环境
- 平台:iOS
- 容器:飞书 App 内置页面 / WebView
- 页面:botmux Web 可操作终端
- 输入法:iOS 中文输入法、手写输入法
- botmux:当前
master(2026-07-19 已确认与 origin/master 同步)
- iOS / 飞书具体版本:待补充
复现步骤
- 在 iOS 飞书中打开 botmux 的「可操作终端」;
- 聚焦终端输入区域;
- 切换到中文输入法;
- 输入中文,中文可正常进入终端;
- 尝试输入数字或标点符号,终端无对应输入;
- 切换到英文输入法后再次输入,数字和半角标点正常;
- 切换到手写输入法尝试数字或标点,仍无法输入。
预期行为
中文输入法或手写输入法状态下,iOS 键盘提交的数字与标点应与中文文字一样正常转发到 PTY。
实际行为
中文文字能输入,但数字和标点未进入终端;必须切换到英文输入法。
初步排查
当前 Web 终端基于 xterm.js,页面在 src/worker.ts 中通过 term.onData(...) 将输入直接转发给 WebSocket。仓库内暂未发现针对 iOS WebView IME composition / beforeinput 的兼容处理。
建议排查:
- iOS 飞书 WebView 中 xterm 隐藏 textarea 收到的
keydown、beforeinput、input、compositionstart/update/end 事件差异;
- 数字/标点是否被 IME composition 流程吞掉,或未触发 xterm
onData;
- Safari 外部浏览器与飞书 WebView 是否同样复现;
- 是否可通过升级 xterm.js或对 iOS IME 增加兼容事件处理解决。
临时绕过
切换英文输入法输入数字和半角标点,或先在其他输入框编辑后粘贴。
问题描述
iOS 飞书内置页面打开 botmux「可操作终端」时,使用中文输入法:
这会导致移动端操作 CLI 时频繁切换输入法,命令、路径、参数等输入基本不可用。
环境
master(2026-07-19 已确认与origin/master同步)复现步骤
预期行为
中文输入法或手写输入法状态下,iOS 键盘提交的数字与标点应与中文文字一样正常转发到 PTY。
实际行为
中文文字能输入,但数字和标点未进入终端;必须切换到英文输入法。
初步排查
当前 Web 终端基于 xterm.js,页面在
src/worker.ts中通过term.onData(...)将输入直接转发给 WebSocket。仓库内暂未发现针对 iOS WebView IME composition / beforeinput 的兼容处理。建议排查:
keydown、beforeinput、input、compositionstart/update/end事件差异;onData;临时绕过
切换英文输入法输入数字和半角标点,或先在其他输入框编辑后粘贴。