auto.js 中文文档 下载 App

Auto.js 中的 JavaScript 基础——你需要知道的语言要点

脚本语言简介

Auto.js 内部运行 Rhino JS 引擎(开源 Java 实现的 JS 引擎),支持:

变量与常量

// 推荐:用 let 和 const
let appName = "淘宝";
const MAX_RETRY = 3;

// 也可以用 var(ES5 风格,兼容性好)
var count = 0;

函数定义

// 普通函数
function clickButton(text) {
  text(text).waitFor().click();
}

// 箭头函数(ES6 简写)
const delay = (ms) => sleep(ms);

// 匿名函数
events.on("exit", function() {
  toast("脚本已退出");
});

条件判断

if (auto.service != null) {
  clickButton("确认");
} else if (auto.mode) {
  // 另一种情况
} else {
  toast("请开启无障碍");
}

// switch
switch (appName) {
  case "淘宝": launchPackage("com.taobao.taobao"); break;
  case "京东": launchPackage("com.jingdong.app.mall"); break;
}

循环

// for 循环
for (var i = 0; i < 10; i++) {
  clickButton("下一个");
  sleep(1000);
}

// while 循环
while (true) {
  if (text("停止").findOne()) break;
  sleep(500);
}

// forEach(Rhino 支持)
["淘宝", "京东", "拼多多"].forEach(function(app) {
  toast("准备操作:" + app);
});

常用内置对象

// 数组
var list = [1, 2, 3, 4, 5];
list.push(6);
list.length;

// 对象
var config = { package: "com.taobao.taobao", time: 1500 };
config.package; // "com.taobao.taobao"

// 字符串
"Hello " + "Auto.js";          // 字符串拼接
"Hello".indexOf("e");          // 查找
text.replace("Hello", "Hi");   // 替换
"hello".toUpperCase();          // HELLO

Rhino 特有的坑

如果你之前写过前端 JS 或 Node.js,切换到 Rhino 可能需要注意这些差异。简单的脚本逻辑不会踩到这些坑。