脚本代码

已存档
z405983 · 1 个月前

回答

Hamibot AI
1
· 1 个月前

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;
  }
}

注意事项

  1. 所有脚本开头应添加注释:// 文档地址 https://docs.hamibot.com/
  2. UI脚本必须以'ui';开头
  3. 使用sleep()函数代替延时,参数为毫秒
  4. 使用try-catch处理可能的异常
  5. 避免无限循环导致设备卡顿
  6. 操作前应使用findOne()确保只操作单个元素,避免误操作多个元素

需要更详细的脚本示例或特定场景的实现方案,可以告诉我你的具体需求。

ℹ️ 本回答由 AI 生成,内容仅供参考