回答
在 Hamibot 脚本中,正确设置和检查无障碍服务是确保脚本正常运行的前提。以下是启动前后设置无障碍服务的最佳实践。
脚本启动前:启用无障碍服务
在运行依赖控件操作的脚本前,必须确保已开启 Hamibot 的无障碍服务。你可以通过以下步骤手动开启:
- 打开 Hamibot App。
- 进入「我的」或「设置」页面。
- 点击「无障碍服务」选项。
- 在系统设置中找到并启用「Hamibot 无障碍服务」。
- (可选)将 Hamibot 加入系统白名单,防止被后台清理(具体方法见 https://hamibot.cn/faq#保持在线)。
⚠️ 注意:如果未开启无障碍服务,脚本在执行到需要控件操作时会抛出异常,并跳转至无障碍启用界面。
脚本启动时:自动检测与设置
你应在脚本开头使用 auto() 或 auto.waitFor() 来声明对无障碍服务的需求。
推荐方式:使用 auto.waitFor()
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
该语句会:
- 检查无障碍服务是否已启用;
- 如果未启用,则跳转到无障碍设置页面并等待服务启动;
- 当用户手动开启后,脚本会自动继续运行。
✅ 优点:用户体验好,无需重新启动脚本。
可选方式:使用 auto(mode)
// 文档地址 https://docs.hamibot.com/
auto('fast'); // 启用快速模式(带控件缓存)
// 或
auto(); // 正常模式
该函数仅检查无障碍服务,若未启用则抛出异常并停止脚本,需用户手动重启。
❗ 不推荐在普通场景下使用
auto(),因为它不具备等待恢复的能力。
高级设置(按需)
// 文档地址 https://docs.hamibot.com/
auto.setMode('fast'); // 设置为快速模式
auto.setFlags(['useUsageStats']); // 使用使用情况统计获取当前包名
总结建议
- 始终在脚本开头调用
auto.waitFor();—— 这是最稳定、最友好的做法。 - 避免在 UI 模式(如悬浮窗交互)中使用阻塞函数,但
auto.waitFor()是安全的。 - 若你的脚本涉及频繁控件查找,可搭配
auto.setMode('fast')提升性能。
示例完整开头:
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
console.show();
log("无障碍服务已就绪,脚本开始运行");
ℹ️ 本回答由 AI 生成,内容仅供参考