极限投屏API
极限投屏使用WebSocket作为API提供接口能力(只有登录账户后才能使用,免费用户不可用)
WebSocket API是常见的、通用的http协议的API接口,支持各种语言调用,如:按键精灵,易语言,C++,Python,Html,Vue,Node.js 等等。。。
-
极限投屏WebSocket API地址:ws://127.0.0.1:33332
-
WebSocket在线测试:https://wstool.js.org/
-
Html demo :https://drive.google.com/file/d/1p1WUy7iI2LNRvwm9nQefcowmE9XgMXPp/view?usp=sharing
获取所有设备信息
请求:
{ "action":"list" }
响应:
{
"StatusCode": 200,
"result": [
{
"deviceId": "ga7d65ylnj6xinhm",
"name": "ga7d65ylnj6xinhm",
"no": 1
},
{
"deviceId": "VBJDU18B14001987",
"name": "VBJDU18B14001987",
"no": 24
}
]
}
截图
请求:
{
"action": "screen",
"comm": {
"deviceIds": "all",
"savePath": "d:/quickmirror",
"onlyDeviceName": 1
}
}
- deviceIds:
"all"表示所有设备,也可以通过传递逗号分隔的deviceId来指定设备,例如"ga7d65ylnj6xinhm,VBJDU18B14001987" -
onlyDeviceName: 是否直接用设备序列号作为截图文件名
- 1 表示截图文件名字只有设备序列号(例如
ga7d65ylnj6xinhm.png) - 0 表示截图文件名包含设备序号和截图时间(例如
1_ga7d65ylnj6xinhm_20240707_114500_096.png)
- 1 表示截图文件名字只有设备序列号(例如
- 注意:如果是无线连接,设备序号中的
:和.会被替换为_(例如设备192.168.2.109:5555截图文件名为1_192_168_2_109_5555_20240707_114919_656.png)
响应:
{
"StatusCode": 200,
"result": "OK"
}
屏幕控制
请求:
{
"action": "PointerEvent",
"comm": {
"deviceIds": "all",
"mask": "0",
"x": "0.5",
"y": "0.5",
"endx": "0",
"endy": "0",
"delta": "0"
}
}
- deviceIds:
"all"表示所有设备,也可以通过传递逗号分隔的deviceId来指定设备,例如"ga7d65ylnj6xinhm,VBJDU18B14001987" - mask: 事件类型: 0按下, 1移动, 2松开, 3鼠标右键(返回), 4滚轮向上, 5滚轮向下, 6上滑, 7下滑, 8左滑, 9右滑
- x,y: 事件坐标,传百分比,范围是0-1
- endx,endy: 结束坐标,只有上下左右滑动事件才需要这两个参数,其他事件不需要传
- delta: 滚轮事件的幅度,范围是大于0的整数,数值越大滚轮滚动幅度越大,只有滚轮事件才需要这个参数,其他事件不需要传
响应:
{
"StatusCode": 200,
"result": "OK"
}
示例:
上滑屏幕
//先执行按下 mask=0 x=0.5 y=0.5 从中间位置开始
{
"action": "PointerEvent",
"comm": {
"deviceIds": "all",
"mask": "0",
"x": "0.5",
"y": "0.5",
"endx": "0",
"endy": "0",
"delta": "0"
}
}
//执行移动mask=1 y移动到0.2位置 松开前可执行多个移动就会变成拖动
{
"action": "PointerEvent",
"comm": {
"deviceIds": "all",
"mask": "1",
"x": "0.5",
"y": "0.2",
"endx": "0",
"endy": "0",
"delta": "0"
}
}
//最后松开mask=2 x y 传最后移动到的位置
{
"action": "PointerEvent",
"comm": {
"deviceIds": "all",
"mask": "2",
"x": "0.5",
"y": "0.2",
"endx": "0",
"endy": "0",
"delta": "0"
}
}
获取剪切板内容
请求:
{
"action": "getclipboard",
"comm": {
"deviceIds": "8318fc66"
}
}
- deviceIds: 这个指令不支持多个手机deviceIds
响应:
{
"StatusCode": 200,
"result": "剪切板测试"
}
发送到剪切板
请求:
{
"action": "writeclipboard",
"comm": {
"deviceIds": "all",
"content": "Hi,QuickMirror"
}
}
- deviceIds:
"all"表示所有设备,也可以通过传递逗号分隔的deviceId来指定设备,例如"ga7d65ylnj6xinhm,VBJDU18B14001987"
响应:
{
"StatusCode": 200,
"result": "OK"
}
执行ADB命令
请求:
{
"action": "adb",
"comm": {
"command": "am start -a android.intent.action.VIEW -d https://blog.csdn.net/rankun1/article/details/87970523",
"deviceIds": "ga7d65ylnj6xinhm"
}
}
- deviceIds:
"all"表示所有设备,也可以通过传递逗号分隔的deviceId来指定设备,例如"ga7d65ylnj6xinhm,VBJDU18B14001987"
响应:
{
"StatusCode": 200,
"result": {
"ga7d65ylnj6xinhm": [
"Starting: Intent { act=android.intent.action.VIEW dat=https://www.aa.app/... }"
]
}
}