跳到主要内容

iMouse键盘 删除文本

从光标位置往前删掉 count 个字符,相当于连按若干次退格键。

比用 /key/sendkey 发 BACKSPACE 快:删 10 个字符只要一次请求, 而且不受按键节奏影响。

依赖手机上的 iMouse 键盘,不经过 USB 硬件

与 /key/* 那几条不同,/keyboard/* 是内核通过局域网直接把文本交给手机上的 iMouse 键盘。所以要求:

  1. 手机上已安装 iMouse 键盘(App Store),并在「设置 → 通用 → 键盘 → 添加新键盘」里添加、 打开「允许完全访问」
  2. 调用的那一刻,iMouse 键盘正处于前台激活状态——也就是光标在某个输入框里、 键盘已经弹出且当前键盘就是 iMouse 键盘
  3. 手机与内核所在的电脑在同一局域网

⚠️ 键盘一旦退到后台(比如按了主屏幕键),这几条会立刻返回 code=46 或 47。 这不是接口坏了,把光标点回输入框、切到 iMouse 键盘即可。

多设备与返回值

id 支持多个设备(逗号隔开);留空表示全部设备。

⚠️ 响应里只有一个 code,取的是第一台的结果——批量调用时,别拿它当"所有设备都成功了"的凭据。

⚠️ id 传了却匹配不到任何设备时返回 code=1(id不存在)。

count 数的是字符

一个中文字算 1 个字符,不是按字节算。

输入框里的字不够删时,有几个删几个,不会报错。 count=0 或不传则什么都不做(仍返回 code=0)。

调用说明​

  • 请求参数
参数类型说明备注
fun字符串/keyboard/delete请求功能名
id字符串设备唯一ID多个设备用逗号隔开;留空表示全部设备
count整数往前删掉几个字符不传按 0 处理(什么都不删)
  • httpGet请求示例
curl --request GET \
--url 'http://192.168.9.9:9911/api/keyboard/delete?id=5C:F7:E6:CE:65:22&count=3'
  • httpPost json请求示例【websocket也可发送同样json请求】
curl --request POST \
--url http://192.168.9.9:9911/api \
--header 'Content-Type: application/json' \
--data '{
"fun": "/keyboard/delete",
"data": {
"id": "5C:F7:E6:CE:65:22",
"count": 3
}
}'

响应结果​

{
"data": {
"code": 0,
"id": "5C:F7:E6:CE:65:22",
"message": "成功"
},
"status": 200,
"message": "成功",
"msgid": 0,
"fun": "/keyboard/delete"
}
  • 响应data数据字段说明
字段类型说明
code整数见下表
id字符串请求里传的设备 id
message字符串code 对应的文字说明
  • 错误码
code含义该怎么处置
0成功——
1id不存在检查设备 id;留空表示全部设备
44密钥初始化失败重启内核后重试
45签名/序列化失败参数里有无法序列化的内容
46连接超时确认 iMouse 键盘在前台、手机与电脑在同一局域网(见上方说明)
47连接被拒绝 / 不可达iMouse 键盘不在前台(键盘已收起,或切到了别的键盘)
48其他网络错误检查手机与电脑是否在同一网段
49请求体为空或字段缺失必填参数没传,或传了空值
50签名无效 / 时间戳过期电脑与手机的系统时间相差过大
51路径不存在手机端 iMouse 键盘版本过旧,请到 App Store 更新
52服务端错误手机端 iMouse 键盘内部出错,重新弹出键盘后重试
53其他HTTP错误——