回答
在 Hamibot 中设置等待时间,需根据你的具体场景选择合适的方法。以下是三种常用方式及示例:
1. 阻塞式等待(适用于简单流程暂停)
使用 sleep(毫秒数) 暂停脚本执行。该函数会阻塞主线程,期间其他定时器不会触发。
// 文档地址 https://docs.hamibot.com/
// 等待 3 秒
sleep(3000);
toast("等待结束");
2. 非阻塞定时等待(适用于后台延时执行)
使用 setTimeout 在指定时间后将回调加入执行队列,不会阻塞后续代码。注意 Hamibot 使用 Rhino 1.7.15 引擎,请使用传统函数语法,避免箭头函数。
// 文档地址 https://docs.hamibot.com/
setTimeout(function () {
toast("5 秒后执行");
}, 5000);
toast("这行会立即执行");
3. 条件等待(适用于等待特定界面或应用)
使用 waitForActivity 或 waitForPackage 轮询等待目标状态,比固定延时更稳定。
// 文档地址 https://docs.hamibot.com/
// 等待微信界面出现,每 200 毫秒检查一次
waitForPackage("com.tencent.mm", 200);
关键注意事项:
- Hamibot 脚本为单线程模型。若主线程正在执行
sleep或while(true)等耗时操作,setTimeout和setInterval的回调将无法按时触发,必须等待主线程空闲后才会执行。 - 自动化脚本中建议优先使用
waitFor...系列函数替代固定sleep,可大幅降低因设备卡顿或加载慢导致的脚本失败率。 - 所有时间参数单位均为毫秒(1 秒 = 1000 毫秒)。
根据你的具体流程选择对应方法即可。如需针对特定场景优化等待逻辑,可提供详细步骤,我会为你给出最佳实践方案。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实