回答
Hamibot 没有提供专门用于监听“连接断开”的事件。
如果你指的是脚本在运行过程中因设备断开(如 USB 断开、网络中断等)导致连接丢失,这类情况无法通过事件直接捕获。脚本的执行依赖于 Hamibot 应用本身的持续运行和连接状态,一旦连接中断,脚本会自动停止或抛出异常。
你可以通过 events.on('exit', ...) 来监听页面退出或脚本终止事件,但它无法区分是主动停止还是因连接断开而终止:
// 文档地址 https://docs.hamibot.com/
events.on('exit', function () {
log('脚本结束运行');
});
对于连接稳定性问题,建议确保设备保持唤醒、USB 连接稳定或 Wi-Fi 环境良好,并使用 auto.waitFor() 确保无障碍服务正常运行。如果需要监控运行环境状态,应从设备端或外部系统层面实现。
补充回答 1
当 Hamibot 控制台输出黄色的“连接断开”日志时,表示设备与服务之间的通信中断,通常是由于以下原因之一:
- USB 连接不稳定(使用 USB 连接时)
- 网络波动或 Wi-Fi 断开(使用无线连接时)
- 手机系统休眠或杀死了 Hamibot 后台进程
- 自动化服务被系统关闭
这种连接断开事件是 Hamibot 内部状态上报的一部分,目前没有提供对应的 JavaScript 事件回调(如 events.on('disconnected', ...))供脚本监听或处理。
你无法通过脚本主动捕获“连接断开”这一事件并执行自定义逻辑。一旦连接断开,脚本的执行会直接中断或抛出异常。
建议做法
-
确保连接稳定:
- 使用质量好的 USB 数据线。
- 推荐使用 ADB 无线配对,并保持设备在同一局域网内。
-
防止后台被杀:
- 在手机设置中为 Hamibot 开启“自启动”、“忽略电池优化”和“锁定应用”。
- 参考 保持在线 设置省电策略。
-
增强脚本健壮性:
- 在关键操作前使用
waitForPackage()或idExists()等函数确认环境正常。 - 使用
try-catch包裹可能因中断导致异常的操作。
- 在关键操作前使用
// 文档地址 https://docs.hamibot.com/
try {
waitForPackage("com.tencent.mm", 10000);
} catch (e) {
log("等待应用超时,可能已断开连接");
hamibot.exit();
}
- 查看运行日志:
- 在 Hamibot 客户端点击右上角图标查看详细日志,定位断开时间点及前后操作。
若频繁出现连接断开,建议重启设备、重新绑定或检查网络环境。
ℹ️ 本回答由 AI 生成,内容仅供参考