执行 C# 函数
executeCsharp 接口用于执行已经通过 compileCsharp 编译注册的 C# 函数。
⏱️ 冷启动时间
首次执行时会有 50-200 毫秒的冷启动时间,后续调用无开销。
接口说明
接口类型
executeCsharp参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
funid | string | ✅ | 函数 ID(由 compileCsharp 返回) |
args | object | ❌ | 传递给 C# 函数的参数对象 |
返回值
返回 C# 函数的执行结果,类型取决于 C# 函数的返回值。
基本使用
完整流程示例
javascript
// 1. 编译获取的函数ID
const funid = 'XXXXX';
// 2. 执行函数
const result = await apiInvoke("executeCsharp", {
funid: funid,
args: {
inta: 10,
floatb: 18.8,
//可以引用魔法参数变量
screenshot: "$.screenshot('deviceId')"
}
});
console.log('运行结果:', result);魔法参数变量
iClick 提供了特殊的魔法变量,可以在调用时动态获取系统数据。魔法变量以 $. 开头,在执行前会自动解析为实际数据。
可用的魔法变量
| 魔法变量 | 说明 | 返回类型 | 用法示例 |
|---|---|---|---|
$.screenshot(deviceId) | 获取指定设备的实时屏幕截图 | byte[] | "$.screenshot('P72578581E07')" |
注意事项
⚠️ 重要提示
魔法变量使用规则
- 魔法变量必须以字符串形式传递(如
"$.screenshot('id')") - 魔法变量会在执行前自动解析为实际数据
- 魔法变量必须以字符串形式传递(如
funid 有效期
- funid 在应用程序运行期间有效
- 应用重启后需要重新编译
参数类型匹配
- 传递的参数类型要与 C# 中的类型匹配
- 注意数字类型的精度问题
内存管理
- 及时释放 C# 中的非托管资源,任务处理完相关资源及时释放
- 致命的代码缺陷可能导致iClick崩溃