基于Auto.js的自动脚本

前言

  该脚本基于auto.js,目的在于方便同学们操作。

所需工具

1.auto.js 获取方式自行百度。
2.手(bushi)
如果实在不会,可以复制附录的代码即可。
话不多说,我们开始吧。

技术理论

以下内容只对技术感兴趣的同学观看
  auto.js是依赖于手机的“无障碍权限”来实现模拟点击。因为我们的手机屏幕,不同地方的坐标是不一样的。且不同分辨率的手机屏幕其相同按钮可能坐标会不一样。 比如某信的聊天界面的“发送”按钮,在A的手机上坐标是(300,100),而在B的手机上可能为(200,100)。下面我们可以参考auto.js的官方文档来看。

1.我们需要知道click()函数

click(x,y);

上面括号里面的x,y表示传入click函数的坐标。比如

click(100,50);

将会点击屏幕上坐标为(100,50)的地方。

那如何获取屏幕坐标的位置?

2.获屏幕位置

  一般情况下,在“关于手机”里面连续多次点击版本号,就会进入开发者模式。在开发者模式里面,我们只要把***“屏幕指针”***选项打开,就能随时获取屏幕的实时坐标。坐标一般会显示在屏幕左上角。


图3

图4

至此,理论上你会用click函数,你可以点击你手机上的任意地方。

辅助以下函数,你将能实现你想要的自动化处理过程:

1.launchApp();

2.home();

我们先来说说第一个launchApp()函数

launchApp("时钟")//注意,双引号必须为英文的双引号。

这样我们就可以在任意界面直接打开“时钟”,如果要打开其他应用,只需要将“时钟”换成其他名字,比如说微信。打开微信之后再经过一系列的点击就能实现打卡。而home()是打卡完之后返回桌面的函数。

一般情况下,我们这么写

var AppName = "时钟";
launchApp(AppName);

这样我们就可以修改AppName来实现打开应用。在JavaScript中,var可以定义任意变量。比如我们C语言或者java语言中的int,String等。在刚才的情况,var相当于定义了一个字符串为“时钟”。

到此,理论上你已经可以自己设计一个适配自己手机的打卡项目。

脚本的安装

脚本的安装与使用可以参考另外一篇文章

注意事项

1.该脚本,不存在违规作弊行为。因为用户是在亮屏状态下执行,不存在不知情行为。
2.看之前微信必须要有“12355青年之声”
3.不一定要用auto.js,可以试试gitHub上开源的autox.js,两者区别可以自行百度

附录代码

auto.waitFor();
//解锁设备
if (!device.isScreenOn()) {
    device.wakeUp();
    sleep(2000);
    swipe((device.width) * 3 / 4, (device.height) * 3 / 4, (device.width) * 2 / 4, (device.height) * 2 / 4, 1000);
    var i;
    for (i = 0; i < 4; i++) {
        sleep(500);
        click(541, 2139.0);
    }
    console.log("自动解锁成功!");
    sleep(2000);
}
//设置控制台
console.show();
console.setSize(447, 502);
console.setPosition(300, 1350);
//启动微信
var appName = '微信';
launchApp(appName);
text("通讯录").waitFor();//等待加载发现页面.text('微信')
  console.log("等待进入微信通讯录");
  var widget = text("通讯录").findOne();
  click(widget.bounds().centerX(),widget.bounds().centerY());
  console.log("成功进入首页");
  sleep(1000);

while(text('公众号').exists()==false){
  
swipe((device.width)/4,(device.height)/4,(device.width)*3/4,(device.height)*3/4,1000);
};//判断滑到最顶端


//点击进入公众号
var widget2 = text("公众号").findOne();
click(widget2.bounds().centerX(),widget2.bounds().centerY());
sleep(2000);

//点击右上角加号
var widget3 = className("LinearLayout").drawingOrder(2).findOne();
click(widget3.bounds().centerX(),widget3.bounds().centerY());
console.log("正在搜索...");

//开始搜索公众号 12355青年之声
sleep(1000);
text("取消").waitFor();
setText("1");//模拟输入矩阵
sleep(2000);
input("2");sleep(2000);
input("355");sleep(2000);
input('青年之声');
text("12355青年之声").waitFor();


//进入公众号
var widget4=className("Button").depth(22).findOne();
click(widget4.bounds().centerX(),widget4.bounds().centerY()); 

//公众号操作;
text("智慧团建").waitFor();
var bottom = text("智慧团建").findOne();
click(bottom.bounds().centerX(),bottom.bounds().centerY());

text("团员报到").waitFor();
var bottom2 = text("团员报到").findOne();
click(bottom2.bounds().centerX(),bottom2.bounds().centerY()); 

 text("帮助中心").waitFor();
var bottom3 = className("android.view.View").indexInParent(2).depth(19).findOne();
click(bottom3.bounds().centerX(),bottom3.bounds().centerY()); 

text("当期学习").waitFor();
var bottom4 = text("当期学习").findOne();
click(bottom4.bounds().centerX(),bottom4.bounds().centerY());
exit();

如果遇到问题,欢迎大家在评论区留言~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值