操作指令
操作指令定义了脚本要执行的具体操作。无论是在任务定义(scripts)还是界面扩展(views)中,都使用相同的指令结构。
指令结构
所有操作指令都包含两个必需字段:
json
{
"command": {
"action": "操作类型",
"args": ["参数1", "参数2", ...]
}
}| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
action | string | ✅ | 操作类型 |
args | array | ✅ | 操作参数数组 |
支持的操作类型
iClick 支持 5 种操作指令:
| 指令 | 用途 | 适用场景 |
|---|---|---|
$.nodejs.run | 执行 Node.js 脚本 | 运行 NODE 脚本 |
$.shell.open | 执行外部程序 | 启动 exe、打开文件 |
$.http.get | HTTP GET 请求 | 调用接口 |
$.http.post | HTTP POST 请求 | 调用接口 |
$.webview.open | 打开 WebView 窗口 | 显示 Web 管理界面 |
$.nodejs.run
执行 Node.js 脚本文件。
语法
json
{
"action": "$.nodejs.run",
"args": ["脚本路径", "参数1", "参数2", ...]
}参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
args[0] | string | ✅ | Node.js 脚本路径 |
args[1+] | string | 可选 | 脚本参数 |
路径规则
相对路径:相对于脚本包目录
json"args": ["script.js", "arg1"] // 实际路径: %APPDATA%/iClick/Scripts/脚本ID/script.js绝对路径:完整文件路径
json"args": ["C:\\Users\\Admin\\scripts\\task.js", "arg1"]
$.shell.open
执行外部程序或打开文件。
语法
json
{
"action": "$.shell.open",
"args": ["程序路径", "参数1", "参数2", ...]
}参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
args[0] | string | ✅ | 程序路径 |
args[1+] | string | 可选 | 命令行参数 |
路径规则
相对路径:相对于脚本包目录
json"args": ["Tool.exe", "arg1"] // 实际路径: %APPDATA%/iClick/Scripts/脚本ID/Tool.exe绝对路径:完整文件路径
json"args": ["C:\\Program Files\\MyApp\\app.exe", "arg1"]
$.http.get
发送 HTTP GET 请求。
语法
json
{
"action": "$.http.get",
"args": ["URL", {查询参数}, {请求头}]
}参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
args[0] | string | ✅ | 请求 URL |
args[1] | object | 可选 | 查询参数对象 |
args[2] | object | 可选 | 请求头对象 |
$.http.post
发送 HTTP POST 请求。
语法
json
{
"action": "$.http.post",
"args": ["URL", {请求体}, {请求头}]
}参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
args[0] | string | ✅ | 请求 URL |
args[1] | object | 可选 | 请求体对象 |
args[2] | object | 可选 | 请求头对象 |
$.webview.open
打开内嵌的 WebView 窗口。
语法
json
{
"action": "$.webview.open",
"args": ["URL", {窗口选项}]
}参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
args[0] | string | ✅ | URL 地址 |
args[1] | object | 可选 | 窗口选项对象 |
窗口选项
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
width | number | 800 | 窗口宽度(像素) |
height | number | 600 | 窗口高度(像素) |
alwaysOnTop | boolean | false | 是否窗口置顶 |
resizable | boolean | true | 是否可调整大小 |
maximizable | boolean | true | 是否可最大化 |
minimizable | boolean | true | 是否可最小化 |
maxWidth | number | - | 最大宽度 |
maxHeight | number | - | 最大高度 |
魔法变量
在操作参数中可以使用魔法变量(例如在右键菜单中),它们会在运行时自动替换为实际值。
可用变量
| 变量 | 说明 | 示例值 |
|---|---|---|
$.deviceId | 当前选中的设备 ID | "iPhone-12345" |
使用场景
魔法变量特别适用于需要获取当前上下文信息的场景: