auto.js 中文文档 下载 App

脚本生命周期——入口、事件监听、退出清理

脚本入口

Auto.js 脚本从上到下顺序执行,第一行就是入口:

// 等无障碍就绪(推荐放在第一行)
auto.waitFor();

// 开始业务逻辑
launchApp("淘宝");
// ...

没有 main() 函数的概念,写在文件顶层的代码直接跑。

常用事件监听

脚本退出事件(最重要)

events.on("exit", function() {
  toast("脚本已退出");
  // 关闭悬浮窗、清理资源等收尾工作
});

以下情况会触发 exit 事件:

无障碍服务状态变化

events.on("accessibility-service", function(enabled) {
  if (!enabled) {
    toast("无障碍服务被关闭,脚本暂停");
  }
});

应用启动 / 切换

// 每次无障碍服务监听到应用切换都会触发
auto.on("window", function() {
  var pkg = currentPackage();
  log("当前应用:" + pkg);
});

按键事件

// 监听实体按键
events.observeKey();
events.on("key", function(e) {
  if (e.keyCode == 4) { // 返回键
    log("用户按了返回");
  }
});

脚本退出方式

// 正常退出(执行完 exit 事件)
exit();

// 抛出异常强制退出
throw new Error("遇到致命错误");

// 直接 kill(不执行 exit 事件,慎用)
// (无对应 API,由系统杀进程触发)

完整示例

auto.waitFor();

// 注册退出清理
events.on("exit", function() {
  log("脚本退出,清理中...");
  // 关闭自定义悬浮窗等
});

// 监听应用切换
auto.on("window", function() {
  log("当前:" + currentPackage());
});

// 主逻辑
log("开始执行");
launchApp("淘宝");
text("每日签到").waitFor().click();
log("完成");