当前位置:   article > 正文

基于Auto.js的自动脚本_auto.js脚本

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);
  • 1

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

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

2.获屏幕位置

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


图3

图4

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

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

1.launchApp();

2.home();

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

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

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

一般情况下,我们这么写

var AppName = "时钟";
launchApp(AppName);
  • 1
  • 2

这样我们就可以修改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();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/488838
推荐阅读
  

闽ICP备14008679号