到位元組集是什麼意思
我們知道Total Control可以幫我們實現一臺電腦同時控制多達100部手機,但是呢?如果我們幾百部手機需要操作,人手不夠,精力有限,這時候怎麼辦呢?指令碼就可以展現其強大的力量了。我們可以透過指令碼來實現自動化批次操作手機。又有人問了,可是我不會指令碼編寫啊,Total Control貼心的推出了全新的AAI指令碼功能,操作簡單,小白也能輕鬆上手,我們今天就拿自動實現啟動或重啟指定APP這個例子來看看有多簡單!
首先,我們要先下載安裝Total Control:
電腦安裝軟體後,用USB連線手機到電腦,啟動軟體會推送安裝包到手機。
啟動或重啟指定App
函式功能:
在當前裝置下,啟動或重啟指定包名的APP
對應JS API:
runApp(packageName)
runAppSync(packageName,query)
是否支援多裝置:
不支援
請求方式:POST
http://localhost:8090/TotalControl/v2/devices/:device/apps/:packageName?token=:token&state=:state&sync=:sync&query:query
引數說明:
引數名
型別
必選
描述
IP
String
Y
訪問 Total Control 伺服器的 IP 地址
token
String
Y
Total Control TOKEN
device
String
Y
主控裝置物件值 id
state
String
Y
app執行標識,active代表啟動該APP,restart代表重啟該APP,可只要該引數
query
String
N
尋找啟動App後介面中出現的元件,直到query內容代表的元件出現返回結果,超時返回詳細資訊,可以不新增此引數
sync
String
N
介面標識,配合query引數使用,固定值:on
響應引數:
Total Control 提供的 REST API 響應格式都是 JSON ,返回值通常由關鍵字 ”status” 和 ”value” 組成,
status: 介面執行成功與否
value: 執行介面的返回資訊
一、執行介面成功的返回欄位說明
欄位
型別
描述
status
Boolean
執行介面成功,則返回:true
value
String
操作資訊,成功後返回值為“make it active”
返回示例:
{
“status”: true,
“value”: “make it active”
}
二、執行介面返回 HTTP 狀態碼為 200,但是結果有誤的返回欄位說明
欄位
型別
描述
status
Boolean
執行介面失敗,則返回:false
value
String
返回失敗的具體資訊
返回示例:
{
“status”: false,
“value”: “
}
請求示例:
http://localhost:8090/TotalControl/v2/devices/device@1116106541/apps/:packageName{
“token”:“270eq7lXQK8bXYsJ”,
“state”:“active”,
“sync”:“on”,
“query”:“T:登入”
}
http://localhost:8090/TotalControl/v2/devices/device@1116106541/apps/:packageName{
“token”:“270eq7lXQK8bXYsJ”,
“state”:“restart”
}
示例:啟動“Total Control”APP,直到出現“USB 連線”的UI元件
注意:下列示例是透過本機訪問 Total Control 伺服器,所以 IP 都是用的 ”localhost”。
RingoJS 請求示例:
可以複製下面的程式碼,在 Total Control 的指令碼終端中執行,也可以儲存為字尾為 js 的檔案, 例如:example。js,在Total Control 執行器中執行。
步驟描述:
匯入必要的ringoJS 包
將使用者名稱密碼編碼,‘sigma:76BF7A2D’是使用者名稱和密碼,在Total Control系統設定裡面可以看到
獲取 Total Control 指令碼開發所用的開發token和主控裝置ID,並將獲取的響應內容轉換成json物件
執行示例
程式碼如下:
var {request} = require(‘ringo/httpclient’);
var base64 = require(‘ringo/base64’);
var userpass = base64。encode(‘sigma:76BF7A2D’);
var gettoken = request({
method:‘GET’,
url: ‘http://localhost:8090/TotalControl/v2/login’,
headers: {‘Authorization’: userpass}
});
var ret_token = JSON。parse(gettoken。content)。value;
var token = ret_token。token;
print(“//The value of token is: ”+ token);
var getdevice = request({
method: ‘GET’,
url: ‘http://localhost:8090/TotalControl/v2/devices/main?token=’ + token
});
var device = JSON。parse(getdevice。content)。id;
print(“//The value of device ID is:”+ device);
var ret = request({
method: ‘POST’,
url: ‘http://localhost:8090/TotalControl/v2/devices/’+device + ‘/apps/com。sigma-rt。com?’,
data: {
‘token’:token,
‘state’:‘active’,
‘query’:‘T:USB 連線’,
‘sync’:‘on’
}
});
print(ret。content);
RingoJS 示例執行結果:
執行成功,則返回:
//The value of token is:m195zZEgY91PMcbo
//The value of device ID is:device@230441652
{
“status”:true,
“value”:“make it active”
}
易語言請求示例:
。版本 2
。程式集 視窗程式集_啟動視窗
。子程式 __啟動視窗_建立完畢
。區域性變數 base64, 文字型
。區域性變數 token, 文字型
。區域性變數 device, 文字型
。區域性變數 j_token, 類_json, , , 用來解析獲取 token 的 json
。區域性變數 j_dev, 類_json, , , 用來解析獲取裝置ID 值的 json
。區域性變數 j_ret, 類_json, , , 用來解析 REST API 介面的json
。區域性變數 bool, 邏輯型
。區域性變數 bool_dev, 邏輯型
。區域性變數 bool_ret, 邏輯型
。區域性變數 status, 文字型
base64 = 到文字 (編碼_BASE64編碼 (到位元組集 (“sigma:76BF7A2D”)))
輸出除錯文字 (“將使用者名稱和密碼組裝成 sigma:76BF7A2D 進行 base64 編碼生成的字串為:” + base64)
bool = j_token。解析 (到文字 (網頁_訪問_物件 (“http://localhost:8090/TotalControl/v2/login”, 0, , , , “Authorization:” + base64, , , , , , , , , )))
。如果 (bool)
輸出除錯文字 (“第一步,獲取 token,返回值為:” + j_token。取資料文字 ())
token = j_token。取通用屬性 (“[“value”]。token”)
輸出除錯文字 (“獲取的 token 值為: ” + token)
bool_dev = j_dev。解析 (編碼_utf8到gb2312 (到文字 (網頁_訪問_物件 (“http://localhost:8090/TotalControl/v2/devices/main?token=” + token, 0))))
。如果 (bool_dev)
輸出除錯文字 (“第二步,獲取裝置 ID 值,返回值為:” + j_dev。取資料文字 ())
device = j_dev。取通用屬性 (“[“id”]”)
輸出除錯文字 (“獲取的裝置 ID 值為: ” + device)
bool_ret = j_ret。解析 (編碼_utf8到gb2312 (到文字 (網頁_訪問_物件 (“http://localhost:8090/TotalControl/v2/devices/” + device + “/apps/com。sigma-rt。com?+ “token=&state=active&sync=on&query=T:USB 連線” + token, 1))))
。如果 (bool_ret)
輸出除錯文字 (“第三步,啟動Total Control APP,返回值為: ” + j_ret。取資料文字 ())
status = j_ret。取屬性物件 (“status”)
。如果 (status = “true”)
輸出除錯文字 (“恭喜你,成功了!”)
。否則
輸出除錯文字 (“不好意思,失敗了!”)
。如果結束
。否則
輸出除錯文字 (“該 API 執行失敗”)
。如果結束
。否則
輸出除錯文字 (“獲取裝置 ID 值失敗”)
。如果結束
。否則
輸出除錯文字 (“獲取 token 失敗”)
。如果結束
易語言程式碼執行結果:
執行成功,則返回:
* 將使用者名稱和密碼組裝成 sigma:3D391497 進行 base64 編碼生成的字串為: c2lnbWE6M0QzOTE0OTc=
* 第一步,獲取 token,返回值為:{“status”:true,“value”:{“token”:“U56adwI779838M6F”}}
* 獲取的 token 值為: U56adwI779838M6F
* 第二步,獲取裝置 ID 值,返回值為:{“id”:“device@230441652}
* 獲取的裝置 ID 值為: device@230441652
* 第三步,啟動Total Control APP,返回值為: {“status”:true,“value”:“make it active”}
* 恭喜你,成功了!