回答
作为开发者,将自定义脚本下发到手机执行的标准流程如下:
1. 准备脚本
- 使用 JavaScript 编写自动化逻辑。Hamibot 底层使用 Rhino 1.7.15 引擎,不支持 ES6+ 语法。请避免使用箭头函数、默认参数、
let/const、模板字符串、解构赋值等特性,统一使用var和传统函数声明。 - 脚本文件开头必须添加注释:
// 文档地址 https://docs.hamibot.com/ - 确保脚本包含完整的执行入口,并处理好异常捕获,避免因未处理错误导致进程意外终止。
2. 在控制台创建脚本
- 登录 Hamibot 网页控制台,进入「脚本管理」→「创建脚本」。
- 填写脚本名称、版本说明,将你的 JS 代码粘贴至编辑器并保存。
- 控制台支持脚本版本管理,后续更新代码只需提交新版本,已分配的设备可按策略同步更新。
3. 绑定并配置手机设备
- 在目标 Android 手机安装 Hamibot App,使用与控制台相同的账号登录。
- 确保设备在控制台显示为「在线」状态。
- 关键权限配置:进入手机「设置」→「无障碍」开启 Hamibot 服务;进入「应用管理」授予 Hamibot「后台弹出界面」权限。权限缺失会导致脚本启动后无法操作 UI,直接提示“运行结束”。
4. 下发与触发执行
- 在控制台「设备管理」中选择目标手机,点击「分配脚本」。
- 选择你创建的脚本,配置运行参数(如传入变量、定时规则、循环策略等),保存后脚本会自动推送至手机端。
- 触发方式:
- 手动触发:控制台点击「立即运行」或手机端点击执行。
- 定时触发:在分配配置中设置 Cron 表达式或固定间隔。
- API 触发:通过 Hamibot 开放 API 传入设备 ID 与脚本 ID,实现与自有业务系统的集成下发。
开发者最佳实践
- 权限自检:脚本开头加入权限校验逻辑,未获取无障碍或悬浮窗权限时主动
toast()提示并exit(),避免静默秒退。 - 日志调试:使用
console.log()输出关键节点,控制台「运行日志」会实时同步。复杂流程建议分段打印状态,便于定位卡死或选择器失效问题。 - 多脚本调度:需动态执行子任务时,使用
engines.execScript()。注意该方式会创建独立执行环境,主脚本变量不共享。如需传参,可将参数序列化为 JSON 字符串拼接进脚本代码,或通过全局文件/本地存储中转。 - 选择器稳定性:优先使用
id、text、desc等稳定属性定位控件,避免依赖绝对坐标或易变的className。加入waitFor()或重试机制提升弱网/卡顿场景下的成功率。 - 资源释放:脚本结束前清理监听器、关闭打开的文件或网络连接,防止后台残留进程占用设备资源。
如果你在 API 集成、脚本兼容性适配或设备心跳异常方面遇到具体报错,提供错误日志或代码片段,我会给出针对性解决方案。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实