按键精灵打卡怎么写_钉钉打卡脚本(基于auto.js)开发总结

关于auto.js

官方对于autojs的介绍如下

“一个支持无障碍服务的Android平台上的JavaScript IDE,其发展目标是JsBox和Workflow。同时有VS Code 插件可提供基础的在桌面开发的功能。”

据了解是一个大学生开发,现在作者已经暂时不对此进行维护了。作为一个开源作者,可能最痛恨就是自己的作品被人拿去作恶叭。

GitHub地址:auto.js

API文档:官方文档

初次尝试:

不知道是软件问题还是我的脚本使用的api问题,在安卓7.0以下系统运行会提示错误。所以,auto.js最好在7.0以上系统中使用

对比类似软件 如:按键精灵。auto基于控件为基本单位,所有操作是在控件上的,所以找到唯一的控件对象是一大关键。按键精灵则是基于坐标的,所以在不同分别率和不同手机上可能会出现未知的bug。

一般控件操作可以参照api文档的说明来进行,逻辑部分可以使用js语法来写

代码总结:

在我的构思中,需要实现以下几个功能:

1.点亮屏幕。2.打开钉钉软件。3.判断时间段,时间段内打卡。4.切换界面,并打卡

代码实现如下:

1.判断是否点亮,如果屏幕未亮,进行点亮

if(!device.isScreenOn()){

log("未唤醒");

device.wakeUpIfNeeded();

keepDrow();

}

2.打开软件

log("第一步,打开程序")

launchApp("钉钉")

3.判断时间段 我的设置是周一到周五打卡,在8点38分后进行上班打卡

var curr_time = new Date();

var now_Hours = curr_time.getHours();

var now_Minutes = curr_time.getMinutes();

var now_day = curr_time.getDay();

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在大部分场景还是很舒服的,但是有些动态加载的页面就不是很好使用。需要坐标进行辅助


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