autojs代码大全(实战演练)

  • Post author:
  • Post category:其他





autojs代码大全(实战演练)

写这个文档的起因是群里有很多人,基础代码不是很熟悉,所以写了这个。

意图是为了大家对基础代码熟练一些,知道某个代码能起到什么作用,运行后有什么效果

/*

**@更多基础加autojs交流群698307198喽;

一键加群:

点击加群


和更多作者同群交流

//黑马学府脚本资源网盘

pan.jiaoben.info

更多源码发布



博客部分导航(总有一篇能解决你的问题)

1.常用功能函数1:

点击这里

2.常用功能函数3:

点击这里

3.代码实战演练1:

点击这里

4.网络验证:

点击这里

*@整理不易纯手打 完成时间:2020.5.31

*///

//在资讯页面开始运行

waitForActivity("com.ss.android.ugc.aweme.search.activity.SearchResultActivity")


//显示控制台

console.show()

//控制台显示文字

console.log(“开始运行”);

console.log(“请手动点开资讯”);

//以1080,1920的屏幕适配其他机器

  setScreenMetrics(1080, 1920);

//点击坐标 注:安卓7一下要root才能点击 代码改为Tap(x,y)

 click(522,366);

//休息2秒,以毫秒记 desc(“搜索”).findOne().click();

sleep(2000)

//判断当前活动

//for次数循环 现在一般建议用while循环。

/*

while(条件)

{

//写代码,如果想一直执行,直到条件不成立,

可以比如while(a=2)才能运行我不想运行这个线程了,就直接令a=其他,这样,就不会执行了

}

*/

for (var i = 0; i < 99999999999; i++) {


setScreenMetrics(1080, 1920);

click(532,959);

console.log(“开始点击阅读全文”);

//点击文字

click(“展开阅读全文”);

sleep(6000);

//模拟返回键

back();

sleep(1500)

//赋值。活动=当前窗口名。其中,currentActivity是获取的函数名

var 活动=currentActivity();

//判断当前活动

//if判断。如果当前活动为主页名,就在设备屏幕1/2的x坐标,.0.8倍高滑动到0.5倍,持续到随机800到1000毫秒

if(活动==“com.yundongquan.sya.ui.activity.MainActivity”)

{

//获取设备宽device.width,device.height高

swipe(device.width / 2, device.height * 0.8 ,

device.width / 2, device.height * 0.5, random(800, 1000));

click(532,959);

sleep(2000)

}

//否则

else

{


console.log(“判断所在页面异常,返回初始状态”)

//打开应用窗口名

launch(“com.yundongquan.sya.ui.activity.MainActivity”)

console.log(“等待重启到主页”)

sleep(6000)

}

}

//qq扩列

“auto”;

while (true) {


//定义find变量写代码节省时间,避免冗长

var find = text(“立即匹配”).findOne();

//如果找到文字控件 立即匹配 !是非的意思

//find != null意思是find这个变量代表的东西(控件)找到了

if (find != null) {


find.click();

sleep(1000);

var findmore = text(“查看更多”).findOne();

if (findmore != null) {


//这句话的意思是,找到id为ivTitleBtnLeft的控件,并点击

//注意,findone可能会造成卡住,建议findonce来寻找

id(“ivTitleBtnLeft”).findOne().click();

sleep(1000);

}

}

}

///

//发送POST请求跳转到指定页面(未解析,困难部分)

function httpPost(URL, PARAMS) {


var temp = document.createElement(“form”);

temp.action = URL;

temp.method = “post”;

temp.style.display = “none”;

for (var x in PARAMS) {
 var opt = document.createElement("textarea");
 opt.name = x;
 opt.value = PARAMS[x];
 temp.appendChild(opt);
}

document.body.appendChild(temp);
temp.submit();
toast("运行完毕")

return temp;

}

///

if (!requestScreenCapture())

{ alert(“请求截图权限失败!”);

exit(); }; //设置截图失败退出脚本

//截图并保存

picpath = “/sdcard/Pictures/Screenshots/” + (new Date).getTime() + “.png”

images.captureScreen(picpath);//截图,并保存在picpath路径里captureScreen)(保存路径)

screencapture = 1//截图数量

media.scanFile(picpath);// //刷新图库,如果不刷新,会无法找到改图片

sleep(1000);

*

// MIUI无法请求截图和launchApp无效说明

// 权限管理里给一下 “后台弹出界面” 权限即可。

//最近MIUI似乎远程推送了一个策略,突然后台弹出界面权限默认禁止了。红米note5A高配版:

//设置——应用管理——更多应用——Auto.js Pro——权限管理——后台弹出界面——开*

//出现autojs卡死的情况,是因为不能在UI线程里直接请求。而是要创建新的线程来执行。例子

"ui";
ui.layout(
    <vertical>
        <button text="第一个按钮" />
        <button text="第二个按钮" />
    </vertical>
);

threads.start(function () {
    //在新线程执行的代码
    //请求截图
    if (!requestScreenCapture()) {
        log("请求截图失败");
        exit();
    } else {
        log("success");
    }
});

//区域找图

//读取本地图片/sdcard/1.png
var img = images.read("/sdcard/1.png");
//判断图片是否加载成功
if(!img){
    toast("没有该图片");
    exit();
}
//在该图片中找色,指定找色区域为在位置(400, 500)的宽为300长为200的区域,
//指定找色临界值为4,其中(400,500是对角线中点坐标)
var point = findColor(img, "#00ff00", {
     region: [400, 500, 300, 200],
     threshold: 4
 });
if(point){
    toast("找到啦:" + point);
}else{
    toast("没找到");
}

///exists()是如果控件存在代码块的,而exit是退出脚本,要与break分开

找图例子

获取网络图片并保存

//这个是Auto.js图标的地址

var url = “https://www.autojs.org/assets/uploads/profile/3-profileavatar.png”;

var logo = images.load(url);

//保存到路径/sdcard/auto.js.png

images.save(logo, “/sdcard/auto.js.png”);

//截图并保存

if(!requestScreenCapture()){


toast(“请求截图失败”);

exit();

}

var img = captureScreen();

images.saveImage(img, “/sdcard/1.png”);

//精确找色

if(!requestScreenCapture()){


toast(“请求截图失败”);

stop();

}

var img = captureScreen();

toastLog(“开始找色”);

//0x1d75b3为编辑器默认主题蓝色字体(if, var等关键字)的颜色

//找到颜色与0x1d75b3完全相等的颜色

var point = findColorEquals(img, 0x006699);

if(point){


toastLog(“x = ” + point.x + “, y = ” + point.y);

}else{


toastLog(“没有找到”);

}

//模糊找色

if(!requestScreenCapture()){


toast(“请求截图失败”);

exit();

}

var img = captureScreen();

//0x9966ff为编辑器紫色字体的颜色

toastLog(“开始找色”);

var point = findColor(img, 0x9966ff);

if(point){


toastLog(“x = ” + point.x + “, y = ” + point.y);

}else{


toastLog(“没有找到”);

}

//区域找色1

if(!requestScreenCapture()){


toast(“请求截图失败”);

exit();

}

var img = captureScreen();

toastLog(“开始找色”);

//指定在位置(100, 220)宽高为400*400的区域找色。

//#75438a是编辑器默认主题的棕红色字体(数字)颜色,位置大约在第5行的”2000″,坐标大约为(283, 465)

var point = findColorInRegion(img, “#75438a”, 90, 220, 900, 1000);

if(point){


toastLog(“x = ” + point.x + “, y = ” + point.y);

}else{


toastLog(“没有找到”);

}

//区域找色2

if(!requestScreenCapture()){


toast(“请求截图失败”);

exit();

}

var img = captureScreen();

//0xffffff为白色

toastLog(“开始找色”);

//指定在位置(90, 220)宽高为900*1000的区域找色。

//0xff00cc是编辑器的深粉红色字体(字符串)颜色

var point = findColor(img, “#ff00cc”, {


region: [90, 220, 900, 1000],

threads: 8

});

if(point){


toastLog(“x = ” + point.x + “, y = ” + point.y);

}else{


toastLog(“没有找到”);

}

//实时显示触摸点颜色

requestScreenCapture();

console.show();

events.observeTouch();

events.setTouchEventTimeout(30);

events.on(“touch”, function(point){


var c = colors.toString(images.pixel(captureScreen(), point.x, point.y));

log(“(” + point.x + “, ” + point.y + “): ” + c);

});

//准确找到该控件/

btn_share_wx = id(“com.gosing.article.news.jh:id/btn_share_wx”).findOnce();

///

while (true) {


main()

}

//不断寻找ok控件,找到就点击,避免代码冗杂

ok_msg_ok = id(“com.gosing.article.news.jh:id/ok_msg_ok”).findOnce();

if (ok_msg_ok) {


ok_msg_ok.click();

sleep(1000);

}

   //如果控件id("tv_type")存在,则
   if(id("tv_type").exists()){

//执行代码

}

///抖音点赞功能模块

function dylike(){


//等待Activity界面出现,这里目的是防止错位,自动化应该在确定的界面执行确定的事儿

//所以我们常常写很多判断

waitForActivity("android.app.Dialog");
// sleep(1000);
for(i=0;i<4;i++){
    click(device.width/2,device.height/2);
    sleep(50);
}}



版权声明:本文为qq_30931547原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。