说明
本文提供的代码仅供参考。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。
Auto.js简介
Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。
Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。
开发文档
Auto.js Pro开发文档优化版
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。
模板、样式、generator来自Node.js。
为什么要使用Auto.js Pro开发脚本,有什么特点?
吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:
- Auto.js Pro能开发免ROOT的安卓脚本
- Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
- Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
- Auto.js Pro使用的javascript的语法比较优雅,代码可读性强
- Auto.js Pro的命令库非常的丰富,接口比较多
- Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告
相关教程
Auto.js Pro安卓全分辨率免ROOT引流脚本开发教程
示例代码
//此代码由飞云脚本圈整理提供(www.feiyunjs.com)
const Bmob = (function(){
function Bmob(url, appId, restKey){
this.baseUrl = url;
this.appId = appId;
this.restKey = restKey;
}
Bmob.prototype.makeRequest = function(method, url, json, callback) {
url = this.baseUrl + url;
var options = {};
options.contentType = "application/json";
options.method = method;
if(json){
options.body = JSON.stringify(json);
}
options.headers = {
"X-Bmob-Application-Id": this.appId,
"X-Bmob-REST-API-Key": this.restKey,
"Content-Type": "application/json"
}
return http.request(url, options, callback);
}
Bmob.prototype.timestamp = function(){
return this.makeRequest("GET", "/timestamp", null).body.json();
}
Bmob.prototype.createObject = function(className, data){
return this.makeRequest("POST", "/classes/" + className, data).body.json();
}
Bmob.prototype.getObjects = function(className){
return this.makeRequest("GET", "/classes/" + className).body.json();
}
Bmob.prototype.getObject = function(className, id){
return this.makeRequest("GET", "/classes/" + className + "/" + id).body.json();
}
Bmob.prototype.updateObject = function(className, data){
return this.makeRequest("PUT", "/classes/" + className + "/" + data.objectId, data).body.json();
}
Bmob.prototype.deleteObject = function(className, data){
var id = typeof(data) == "string" ? data : data.objectId;
return this.makeRequest("DELETE", "/classes/" + className + "/" + id).body.json();
}
return Bmob;
})();
/**
* Bomb
* 需要APPID和REST ID
* 参见http://doc.bmob.cn/data/restful/
*/
const APPID = null;
const REST_ID = null;
if(!APPID || !REST_ID){
alert("需要注册Bmob并填入app id和rest id");
app.openUrl("http://doc.bmob.cn/data/restful/");
exit();
}
var bmob = new Bmob("https://api2.bmob.cn/1", APPID, REST_ID);
log(bmob.timestamp());
let item1 = {
"a": 1,
"b": 2
};
let item2 = {
"a": 3,
"c": 4
};
let createResult = bmob.createObject("Item", item1);
log("create item 1: ", createResult);
Object.assign(item1, createResult);
log("item 1: ", item1);
Object.assign(item2, bmob.createObject("Item", item2));
log("item 2 created: ", item2);
log("get all items: ", bmob.getObjects("Item"));
log("get item by id %s: ", item1.objectId, bmob.getObject(item1.objectId));
log("delete item 1:", bmob.deleteObject("Item", item1));
log("get all items: ", bmob.getObjects("Item"));
item2.a = 100;
Object.assign(item2, bmob.updateObject("Item", item2));
log("item2 updated: ", bmob);
log("get all items: ", bmob.getObjects("Item"));