一、基本语句
(一)常用
home(); // 返回home主页
Back(); // 返回键
sleep(1000); // 延时1000毫秒
var num = random(1,10); // 设置1~10的随机数
click("app名"); // 打开某app
toast("你好,世界"); // 底部文本提醒
setText("你好,世界"); //在输入框点击出现光标,即可使用该语句填写文本
//或者setText(0,"账号"); setText(1,"密码");
(二)点击
// 设置屏幕指标再点击,使得分辨率不同的手机也点在相同的点
setScreenMetrics(1080, 1920);
click(800, 200); // 按坐标点击
longClick(800, 200) // 长按600毫秒,并返回是否长按成功
press(800,200,2000) // 设置坐标长按2000毫秒,并返回是否成功
(三)按住随机滑动
// 入参(起点x,起点y,终点x,终点y,过程耗时单位毫秒)
sml_move(257, 1670, 870, 1670,800);
function bezier_curves(cp, t) {
cx = 3.0 * (cp[1].x - cp[0].x);
bx = 3.0 * (cp[2].x - cp[1].x) - cx;
ax = cp[3].x - cp[0].x - cx - bx;
cy = 3.0 * (cp[1].y - cp[0].y);
by = 3.0 * (cp[2].y - cp[1].y) - cy;
ay = cp[3].y - cp[0].y - cy - by;
tSquared = t * t;
tCubed = tSquared * t;
result = {
"x": 0,
"y": 0
};
result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
return result;
};
function sml_move(qx, qy, zx, zy, time) {
var xxy = [time];
var point = [];
var dx0 = {
"x": qx,
"y": qy
};
var dx1 = {
"x": random(qx - 100, qx + 100),
"y": random(qy , qy + 50)
};
var dx2 = {
"x": random(zx - 100, zx + 100),
"y": random(zy , zy + 50),
};
var dx3 = {
"x": zx,
"y": zy
};
for (var i = 0; i < 4; i++) {
eval("point.push(dx" + i + ")");
};
log(point[3].x)
for (let i = 0; i < 1; i += 0.08) {
xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]
xxy.push(xxyy);
}
log(xxy);
gesture.apply(null, xxy);
};
(四)控制台
console.show(); // 显示控制台
console.log("白色"); // 控制台打印文本:白色
console.info("绿色"); // 控制台打印文本:绿色
console.warn("蓝色"); // 控制台打印文本:蓝色
console.error("红色"); // 控制台打印文本:红色
(五)用线程自动开启截图权限
console.show();
threads.start(function(){
if(auto.service != null){ //如果已经获得无障碍权限
//由于系统间同意授权的文本不同,采用正则表达式
let Allow = textMatches(/(允许|立即开始|统一)/).findOne(10*1000);
if(Allow){
Allow.click();
}
}
});
var result = images.requestScreenCapture(); // 申请截图权限
console.log(result)
(六)读写权限
//读
var result = files.read("/mnt/shared/Pictures/result.txt")
console.log(result)
// 写
files.write("/mnt/shared/Pictures/result.txt","你好,世界"); // 直接写法
files.append("/mnt/shared/Pictures/reline.txt", JSON.stringify([1,2])+"\n") // 追加写法
二、布局代码
// 常用控件属性,方便定位
id("xxx").className("xxx").depth(int).text("xxx").desc("xxx")
(一)位置
// 直接通过id找到控件点击
id("hkp").findOne(10).click()
// 通过文本选择找到控件,根据控件中心坐标偏移完成点击(推荐使用)
var label = className("android.widget.TextView").text("账号").findOne(10)
console.log(label.bounds().centerX(),label.bounds().centerY())
click(label.bounds().centerX()+200,label.bounds().centerY()) // 向控件右偏移200点击
// 找到控件的父亲的第二个孩子进行点击,child(0)为第一个孩子,即控件本身
className("android.widget.TextView").text("密码").findOne(10).parent().child(1).click()
// 输出控件文本
var label = className("android.widget.TextView").text("国家/地区").findOne(10).parent().child(1)
console.log(label.text())
// 按控件文本找按钮点击
var button = textMatches("登录").findOne(10)
if(button){button.click()}
(二)判断点击
// 等待控件出现
while(!className("android.widget.TextView").text("我的").findOne(10)){sleep(500)};
log("打开成功!")
// 等等控件出现然后点击
while(!className("android.widget.TextView").text("签到").exists()){sleep(500)}
className("android.widget.TextView").text("签到").click()
//找到控件文本包含内容进行点击
if(textContains("签到").exists()){
textContains("签到").findOnce(0).click() //找到第一个控件点击,第二个改1,类推
}
(二)输出当前页面所有文本
for(i=0;i<1000;i++){
var label = textMatches("(.*?)").findOnce(i)
if(!label){break}
log(label.text())
}
三、函数大全
1、text函数
text("签到") // 找所有"签到"控件
textContains("签到") // 找所有包含"签到"的控件
textStartWith("签到") // 找所有"签到"开头的控件
textEndsWith("签到") // 找所有"签到"结尾的控件
textContains("签到").findOnce(0) // 找第一个包含"签到"的控件
textMatches("开始(.*?)了").findOnce(0) // 找第一个正则表达式内容
2、bounds函数
bounds().left "长方形左边界的x坐标"
bounds().right "长方形右边界的x坐标"
bounds().top "长方形上边界的y坐标"
bounds().bottom "长方形下边界的y坐标"
bounds().centerX() "长方形中点x坐标"
bounds().centerY() "长方形中点y坐标"
bounds().width() "长方形宽度也就是控件宽度"
bounds().height() "长方形高度也就是控件高度"
父子控件之间的关系和查找方法:
获取控件中子控件的个数:className('').findOne().childCount()
获取控件中某个子控件: className('').findOne().child(5)
微信视频投屏:
1、在手机端微信中会拦截投屏功能,需要首先点击视频页面右上角“...”图标,选择“在浏览器中打开”,在列表中选取具备投屏功能的浏览器,推荐使用QQ浏览器
2、在新打开的浏览器视频页面里,点击播放按钮,可在视频框右上角看到一个“TV”投屏小图标,只要电视和手机在同一WiFi环境下,点击按钮即刻享受大屏观感!
本站资源声明:
1、如需免费下载云盘资源,请先点击页面右上角的“登录”按钮,注册并登录您的账号后即可查看到网盘资源下载地址;
2、本站所有资源信息均由网络爬虫自动抓取,以非人工方式自动筛选长效资源并更新发布,资源内容只作交流和学习使用,本站不储存、复制、传播任何文件,其资源的有效性和安全性需要您自行判断;
3、本站高度重视知识产权保护,如有侵犯您的合法权益或违法违规,请立即向网盘官方举报反馈,并提供相关有效书面证明与侵权页面链接联系我们处理;
4、作为非盈利性质网站,仅提供网络资源的免费搜索和检测服务,无需额外支付其他任何费用,学习和交流的同时请小心防范网络诈骗。