赞
踩
该脚本基于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();
如果遇到问题,欢迎大家在评论区留言~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。