钉钉打卡脚本(基于auto.js)开发总结
关于auto.js
官⽅对于autojs的介绍如下
“⼀个⽀持⽆障碍服务的Android平台上的JavaScript IDE,其发展⽬标是JsBox和Workflow。同时有可提供基础的在桌⾯开发的功能。”
据了解是⼀个⼤学⽣开发,现在作者已经暂时不对此进⾏维护了。作为⼀个开源作者,可能最痛恨就是⾃⼰的作品被⼈拿去作恶叭。
GitHub地址:
API⽂档:
初次尝试:
不知道是软件问题还是我的脚本使⽤的api问题,在安卓7.0以下系统运⾏会提⽰错误。所以,auto.js最好在7.0以上系统中使⽤对⽐类似软件 如:按键精灵。auto基于控件为基本单位,所有操作是在控件上
的,所以到唯⼀的控件对象是⼀⼤关键。按键精灵则是基于坐标的,所以在不同分别率和不同⼿机上可能会出现未知的bug。
⼀般控件操作可以参照api⽂档的说明来进⾏,逻辑部分可以使⽤js语法来写
代码总结:
在我的构思中,需要实现以下⼏个功能:
1.点亮屏幕。
2.打开钉钉软件。
3.判断时间段,时间段内打卡。
js脚本开发4.切换界⾯,并打卡
代码实现如下:
1.判断是否点亮,如果屏幕未亮,进⾏点亮
if(!device.isScreenOn()){
log("未唤醒");
device.wakeUpIfNeeded();
keepDrow();
}
2.打开软件
log("第⼀步,打开程序")
launchApp("钉钉")
3.判断时间段 我的设置是周⼀到周五打卡,在8点38分后进⾏上班打卡
var curr_time = new Date();
var now_Hours = Hours();
var now_Minutes = Minutes();
var now_day = Day();
if(now_day < 6){
log("⼯作⽇")
log("当前系统时间:"+now_Hours+  +now_Minutes)
if (now_Hours == 8 && now_Minutes >= 38)
{
log("正确的时间,开始进⾏打卡")
}else{
log("not this time, wait for 5 mintes")
sleep(1000 * 60 * 5)
checkIsNow()
}
}else{
log("⾮⼯作⽇")
}
4.切换界⾯,因为好⼏个界⾯,思路都是⼀样,到对应的空间,并执⾏点击⽅法
work_button = desc("⼯作").findOnce();
if (work_button == null){
log("不到⼯作");
sleep(1000);
}else{
log("到⼯作");
work_button.click();
sleep(1000);
}
暂时就到这⾥,基于控件的auto.js在⼤部分场景还是很舒服的,但是有些动态加载的页⾯就不是很好使⽤。需要坐标进⾏辅助

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。