English | 中文
用于iOS免越狱自动化的 C# SDK。除了 API 调用功能外,实现了断线重连和事件监听机制以及二进制meta数据包解析。
官方网站: https://iosclick.com/
dotnet add package iclick-auto或者通过 NuGet Package Manager:
Install-Package iclick-auto
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using IClick;
class Program
{
static async Task Main(string[] args)
{
// 创建客户端实例
var client = new Client(new ClientOptions
{
Host = "127.0.0.1",
Port = 23188
});
// 监听设备事件
client.On("device:online", (data) =>
{
Console.WriteLine($"设备上线: {data}");
});
client.On("device:offline", (data) =>
{
Console.WriteLine($"设备下线: {data}");
});
// 连接服务器
await client.Connect();
// 调用 API
var result = await client.Invoke("getDevices", new Dictionary<string, object?>
{
{ "deviceId", "P60904DC8D3F" }
});
Console.WriteLine($"结果: {result}");
}
}创建客户端实例。
参数:
| 参数 | 类型 | 可选 | 说明 | 默认值 |
|---|---|---|---|---|
options.Host |
string | 是 | WebSocket 服务器地址 | 127.0.0.1 |
options.Port |
int | 是 | WebSocket 服务器端口 | 23188 |
options.AutoReconnect |
bool | 是 | 是否启用自动重连 | true |
options.ReconnectDelay |
int | 是 | 重连延迟(秒) | 3 |
options.MaxReconnectAttempts |
int | 是 | 最大重连次数,0表示无限 | 8 |
示例:
var client = new Client(new ClientOptions
{
Host = "192.168.31.15",
Port = 23188,
AutoReconnect = true,
ReconnectDelay = 5,
MaxReconnectAttempts = 10
});连接到 WebSocket 服务器。
返回: Task
示例:
try
{
await client.Connect();
Console.WriteLine("连接成功");
}
catch (Exception error)
{
Console.WriteLine($"连接失败: {error.Message}");
}调用 API 方法。
参数:
type(string): API 类型params(Dictionary<string, object?>, 可选): 请求参数,默认nulltimeout(int, 可选): 超时时间(秒),默认18
返回: Task<object?>
示例:
// 发送按键
var result = await client.Invoke("sendKey", new Dictionary<string, object?>
{
{ "deviceId", "P60904DC8D3F" },
{ "key", "h" },
{ "fnkey", "COMMAND" }
});
// 获取截图(返回二进制数据)
var screenshot = await client.Invoke("getScreenShot", new Dictionary<string, object?>
{
{ "deviceId", "P60904DC8D3F" }
}) as byte[];
if (screenshot != null)
{
System.IO.File.WriteAllBytes("screenshot.png", screenshot);
}
// 自定义超时时间
var result = await client.Invoke("someType", new Dictionary<string, object?>
{
{ "param", "value" }
}, 30);注册事件监听器。
参数:
eventName(string): 事件名称callback(Action<object?>): 回调函数,接收事件数据作为参数
示例:
client.On("device:online", (data) =>
{
Console.WriteLine($"设备上线: {data}");
});
client.On("device:offline", (data) =>
{
Console.WriteLine($"设备下线: {data}");
});移除事件监听器。
参数:
eventName(string): 事件名称callback(Action<object?>, 可选): 要移除的回调函数。如果不提供,将移除该事件的所有监听器
示例:
Action<object?> handler = (data) =>
{
Console.WriteLine($"收到事件: {data}");
};
// 注册监听器
client.On("someEvent", handler);
// 移除特定监听器
client.Off("someEvent", handler);
// 移除事件的所有监听器
client.Off("someEvent");销毁客户端,断开连接并清理所有资源。实现 IDisposable 接口。
示例:
client.Dispose();
Console.WriteLine("客户端已销毁");或者使用 using 语句:
using (var client = new Client())
{
await client.Connect();
// 使用客户端...
} // 自动调用 Dispose()MIT
- API参考: https://iosclick.com/zh/api/index.html
- 事件通知: https://iosclick.com/zh/api/notify.html
- NuGet 包: https://www.nuget.org/packages/iclick-auto/
如有问题,请在 Issues 中反馈。