極限投影機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 xy 传最后移动到的位置{ "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/... }" ] } }