Skip to content

bug(web-terminal): iOS 飞书内置页中文输入法无法输入标点与数字 #522

Description

@DeepColds

问题描述

iOS 飞书内置页面打开 botmux「可操作终端」时,使用中文输入法:

  • 中文文字可以正常输入;
  • 中文输入法状态下,标点符号与数字无法输入到终端;
  • 切换为英文输入法后,数字和半角标点可以正常输入;
  • iOS 手写输入法也无法输入标点符号与数字。

这会导致移动端操作 CLI 时频繁切换输入法,命令、路径、参数等输入基本不可用。

环境

  • 平台:iOS
  • 容器:飞书 App 内置页面 / WebView
  • 页面:botmux Web 可操作终端
  • 输入法:iOS 中文输入法、手写输入法
  • botmux:当前 master(2026-07-19 已确认与 origin/master 同步)
  • iOS / 飞书具体版本:待补充

复现步骤

  1. 在 iOS 飞书中打开 botmux 的「可操作终端」;
  2. 聚焦终端输入区域;
  3. 切换到中文输入法;
  4. 输入中文,中文可正常进入终端;
  5. 尝试输入数字或标点符号,终端无对应输入;
  6. 切换到英文输入法后再次输入,数字和半角标点正常;
  7. 切换到手写输入法尝试数字或标点,仍无法输入。

预期行为

中文输入法或手写输入法状态下,iOS 键盘提交的数字与标点应与中文文字一样正常转发到 PTY。

实际行为

中文文字能输入,但数字和标点未进入终端;必须切换到英文输入法。

初步排查

当前 Web 终端基于 xterm.js,页面在 src/worker.ts 中通过 term.onData(...) 将输入直接转发给 WebSocket。仓库内暂未发现针对 iOS WebView IME composition / beforeinput 的兼容处理。

建议排查:

  • iOS 飞书 WebView 中 xterm 隐藏 textarea 收到的 keydownbeforeinputinputcompositionstart/update/end 事件差异;
  • 数字/标点是否被 IME composition 流程吞掉,或未触发 xterm onData
  • Safari 外部浏览器与飞书 WebView 是否同样复现;
  • 是否可通过升级 xterm.js或对 iOS IME 增加兼容事件处理解决。

临时绕过

切换英文输入法输入数字和半角标点,或先在其他输入框编辑后粘贴。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions