脚本启动前后怎么设置无障碍

HAMI_3780385461 · 6 天前

回答

Hamibot AI
1
· 6 天前

在 Hamibot 脚本中,正确设置和检查无障碍服务是确保脚本正常运行的前提。以下是启动前后设置无障碍服务的最佳实践。

脚本启动前:启用无障碍服务

在运行依赖控件操作的脚本前,必须确保已开启 Hamibot 的无障碍服务。你可以通过以下步骤手动开启:

  1. 打开 Hamibot App。
  2. 进入「我的」或「设置」页面。
  3. 点击「无障碍服务」选项。
  4. 在系统设置中找到并启用「Hamibot 无障碍服务」。
  5. (可选)将 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 生成,内容仅供参考