Autox.js 第一个脚本 写一行 toast 让手机弹出提示
代码里的 hello world
学习任何一门编程工具,都是从"让屏幕弹出一行字"开始。Autox.js 也不例外。
打开内置 IDE
打开 Autox.js 主界面,点击"脚本"标签页,点右下角的 「+」 按钮,选择"新建脚本文件",文件名随便取(比如 hello.js)。
Autox.js 内置了一个轻量的 JavaScript IDE,支持代码补全、格式化、变量重命名、查找替换。
写你的第一行代码
toast("你好,Autox.js!");
保存文件(Ctrl+S 或侧栏保存按钮),然后点右上角的 播放按钮 运行。
手机屏幕底部应该弹出一句提示文字,大约 2 秒后消失。恭喜——你已经跑通了第一个 Autox.js 脚本。
理解这行代码发生了什么
toast() 是 Autox.js 的一个内置全局函数。它的作用就是显示一个 Android 系统级的 Toast 提示。整个调用链:
你的 JS 代码 → Rhino 引擎解析 → 调用 Autox.js 内置 API → 通过无障碍服务显示 Toast UI
Autox.js 内置了几十个这样的全局函数和对象,覆盖了控件查找、点击操作、截屏、图像识别、OCR、HTTP 请求等场景。
再写一行:让它真正"做点事"
toast 只是热身。让脚本真的和屏幕交互一下:
toast("开始查找确定按钮...");
let btn = className("Button").text("确定").findOne(5000);
if (btn) {
toast("找到了,点击!");
btn.click();
} else {
toast("没找到,5 秒超时了");
}
这段脚本会:
- 先弹个 toast 提示开始工作
- 遍历屏幕上所有
className == "Button"的控件,找文字是"确定"的那个 - 最多等 5 秒
- 找到了就点一下,没找到就 toast 说没找到
注意这里的几个关键点,后面还会反复遇到:
| 代码元素 | 含义 |
|---|---|
className("Button") | 创建一个选择器,匹配所有类名为 Button 的控件 |
.text("确定") | 叠加条件——文字必须是"确定" |
.findOne(5000) | 在 5000 毫秒内异步等待匹配的控件出现,返回第一个匹配 |
btn.click() | 对这个控件发送点击动作 |
运行方式
脚本有三种运行方式:
| 方式 | 怎么用 | 适用场景 |
|---|---|---|
| IDE 里播放按钮 | 右上角 ▶ | 开发调试时 |
| 悬浮窗运行按钮 | 悬浮条上的 ▶ | 不想切回 App 时 |
| VSCode 远程运行 | VSCode 插件 | 电脑端写代码实时推送(见 VSCode 远程调试页) |
控制台:调试的好帮手
Autox.js 有一个内置的控制台悬浮窗。在代码里加 console.show() 可以打开它:
console.show();
console.log("当前时间:", new Date());
console.warn("这是一条警告");
console.error("这是一条错误");
控制台可以:
- 显示日志输出(log/warn/error 不同颜色)
- 输入交互(
console.rawInput("请输入:")) - 调整大小、拖动位置
当脚本没按预期工作时,加几行 console.log() 比瞎猜有效得多。
新手常见错误清单
| 错误 | 原因 | 解决 |
|---|---|---|
ReferenceError: toast is not defined | 没在 Autox.js 环境里运行 | 必须通过 Autox.js App 执行,直接用浏览器或 Node 跑不行 |
| 脚本报错后停止运行 | JS 的异常传播 | 用 try-catch 包裹,或者加 auto.rootFolder 等全局检查 |
className("Button") 找不到 | 控件的 className 可能不是 "Button" | 用布局分析器现场看看实际值(见下一页) |
继续往前走
第一个脚本只是让你对"写 → 运行 → 看到效果"这个闭环有了直观认识。接下来最值得学的是: