回答
Hamibot脚本代码详解
Hamibot脚本基于JavaScript编写,使用Rhino 1.7.15引擎,因此需要注意兼容性限制,不能使用箭头函数、默认参数值等ES6+特性。
基本脚本结构
// 文档地址 https://docs.hamibot.com/
// 基础脚本示例
log("Hello Hamibot!");
// 点击文本为"确定"的按钮
text("确定").findOne().click();
// 循环操作示例
for (let i = 0; i < 5; i++) {
log("执行第" + (i + 1) + "次");
sleep(1000);
}
UI脚本特殊要求
UI脚本必须在第一行添加'ui';标识,且前面不能有任何字符:
'ui'; // 必须在首行且无前导字符
// 文档地址 https://docs.hamibot.com/
ui.layout(
<vertical gravity="center">
<button id="btn" text="点击我" />
<text id="counter" textSize="20sp" margin="10" />
</vertical>
);
let count = 0;
ui.btn.click(() => {
count++;
ui.counter.setText("点击次数: " + count);
});
通过API运行脚本代码
可以使用API临时执行脚本代码:
// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.hamibot.com/v1/scripts/execute', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'hmp_你的令牌'
},
body: JSON.stringify({
code: "toast('通过API执行的脚本');",
devices: ["device_id1", "device_id2"]
})
});
常用自动化操作
// 文档地址 https://docs.hamibot.com/
// 输入文本并点击发送
className('EditText').findOne().setText('你好');
text('发送').findOne().click();
// 滑动操作(以下滑QQ消息列表为例)
id('recent_chat_list').className('AbsListView').findOne().scrollForward();
// 循环操作(示例,实际使用请谨慎)
while (true) {
try {
className('EditText').setText('测试消息');
text('发送').click();
sleep(2000); // 每2秒发送一次
} catch (e) {
log("发送失败:", e);
break;
}
}
注意事项
- 所有脚本开头应添加注释:
// 文档地址 https://docs.hamibot.com/ - UI脚本必须以
'ui';开头 - 使用sleep()函数代替延时,参数为毫秒
- 使用try-catch处理可能的异常
- 避免无限循环导致设备卡顿
- 操作前应使用findOne()确保只操作单个元素,避免误操作多个元素
需要更详细的脚本示例或特定场景的实现方案,可以告诉我你的具体需求。
ℹ️ 本回答由 AI 生成,内容仅供参考