最近,总是忘记健康上报,在班群内”公开处刑”,查看聊天记录近半年有七次提醒,也是有劳班长了。所以如何解决健康打卡列入我的头等大事!

去年是微信公众号打卡,需要挨个填写表单的空,很是麻烦,当时就有想过自动打卡,尝试过华为智慧助手(点击屏幕,记忆点击顺序,之后通过小艺唤醒),但是智慧助手对微信内网页的上下滑动并不兼容。今年改为企业微信打卡,首次填写后,表单会记录一些默认值,每天只需要点击几下就提交了,没有之前打字的繁琐,很nice。但最近忘记打卡成了一大问题,也许看见消息通知了,手头有其他事就忘记了。

日记01

我的思路是网上扒一份脚本之类略加修改,丢到服务器定时运行实现定时打卡功能,事与愿违,Github中脚本确实不少,有三大主流,主流方法很多(列一下日后备用😆),但企业微信只有南京邮电大学,而且cookie需要天天手动配置,听君一席话如听一席话,变相手动打卡?经过我不断搜索,找到一款安卓环境的脚本软件,以及阅读官网 部分API文档。Auto.js Pro已成为付费软件,不过免费低版本也足够使用,安装包存服务器了,点击下载Auto.js-张时贰私有云

  1. 基于学校教务平台,中科大健康打卡

  2. 借助第三方校园APP,完美校园APP

  3. 微信公众号,电子科技大学健康打卡

  4. 企业微信,南京邮电大学企业微信健康打卡TIT企业微信自动打卡

使用须知

  1. 本项目创立的初衷在于技术交流、相互学习,而并非为学生提供打卡服务。因此,该项目不对提供的服务质量作出保障
  2. 牢记:疫情防控始终是一个敏感且重要的话题。如果您决定使用该项目所提供的服务,那么其带来的一切后果,均将由您个人承担,与原作者、贡献者无关
  3. 伴随着疫情的到来,学校为了解在校师生的健康状况,全校师生都规定在特定的时间进行健康打卡 or 校内打卡,本项目旨在帮助使用企业微信打卡的在校师生提供帮助,每天指定时间进行自动打卡,从每天指定时间打卡的压力中解放出来,全身心地投入到社会主义建设之中去!

脚本分为三部分,三部分脚本可以分开调试,目的是为了非科班以及非本校的同学方便修改

  1. 企业微信打卡
  2. 打卡失败,网易云音乐播放
  3. 如果手机休眠,唤醒并打开手机

和小张同校可直接复制完整代码。参考B站视频配置

企业微信打卡

首先确定自己学校的微信打卡流程,常用的API:

  • 打开APPlaunchApp("")
  • 点击按钮click("name"),当存在多个相同的按钮,用数组加以区分click("name",1)
  • 点击坐标点click(x,y),找坐标位置可以打开手机开发人员选项->指针位置(自行百度)
  • 如果有文本框,示例input(0,"36°"),第1个文本框中输入36°
  • 如果有广告或网络延迟,加一个sleep(x),表示休眠x微秒后执行后面程序

首先调试企业微信打卡功能,以下仅适用太工

launchApp("企业微信")
while(!click("健康天天报"));
sleep(300)
while(!click("上报提醒"));
sleep(300)
while(!click("健康上报"));
sleep(5000) //定位延迟根据实际网速设置,5s应该足够
click("确认") //如果是重复打卡,点击确认
sleep(3000)
while(!click("签到"));
sleep(3000)
//click("已知晓") //默认两个已知晓全选,用数组区分
//sleep(300)
while(!click("已知晓",1));
sleep(300)
while(!click("已知晓",3));
sleep(500)
while(!click("为疫情防控,"));
sleep(500)
while(!click("上述信息是我本人填写"))
sleep(500)
click("提交")
sleep(500)

网易云音乐播放

如果打卡失败,有个提醒就好了,所以启动网易云,点击播放音乐按钮。如果手机没有网易云可自行修改,或删掉这个功能

launchApp("网易云音乐");    
sleep(2000);
click(855, 2170);
var maxMusic = device.getMusicMaxVolume()
device.setMusicVolume(maxMusic*0.5) //设置音量为50

唤醒手机

如果手机处于休眠状态,再配一个唤醒程序

var passworld = "1234"			//手机密码
device.wakeUp() //唤醒屏幕
setScreenMetrics(1080, 2400); //屏幕分辨率
gestures([350, [100, 1400], [300, 400]]);
sleep(1000)
var len = passworld.length
//输入密码
for(var i = 0; i<=len;i = i+1){
click(passworld[i])
}

完整脚本

完成企业微信打卡、网易云音乐播放、唤醒并打开手机,三个功能调试后,合并到一起,并利用for循环添加一个检测功能

var passworld = "0205"			//手机密码
device.wakeUp() //唤醒屏幕
setScreenMetrics(1080, 2400); //屏幕分辨率
gestures([350, [100, 400], [300, 1400]]);
gestures([350, [100, 1400], [300, 400]]);
sleep(1000)
var len = passworld.length
//输入密码
for(var i = 0; i<=len;i = i+1){
click(passworld[i])
}
function TG_Health(){
home() //回到主屏
sleep(500)
launchApp("企业微信")
while(!click("健康天天报"));
sleep(300)
while(!click("上报提醒"));
sleep(300)
while(!click("健康上报"));
sleep(5000) //定位延迟根据实际网速设置,5s应该足够
click("确认") //如果是重复打卡,点击确认
sleep(3000)
while(!click("签到"));
sleep(3000)
//click("已知晓") //默认两个已知晓全选,用数组区分
//sleep(300)
while(!click("已知晓",1));
sleep(300)
while(!click("已知晓",3));
sleep(500)
while(!click("为疫情防控,"));
sleep(500)
while(!click("上述信息是我本人填写"))
sleep(500)
click("提交")
sleep(500)
}
function OpenMusic(){
launchApp("网易云音乐");
sleep(5000)
click(855, 2170);
var maxMusic = device.getMusicMaxVolume()
device.setMusicVolume(maxMusic*0.5) //设置音量为50
}
//sleep(3000)
TG_Health(); //调用打卡函数
//for循环检测打卡是否成功
for(var i=0;i<=2;i++){
var k = click("确认");
if(k){
toast("签到完成")
break;
}if(i == 1) {
back()
back()
TG_Health()
var k2 = click("确认");
if(k2){
break;
}
}
if(i == 2){
toast("打开音乐")
OpenMusic();
break;
}
toast(i)
}

至此,就实现打卡自由啦!另外就是根据自己手机的实际延迟调整sleep(),如果执行到某一步没反应,while(!click("xxx"));click("xxx")两种写法替换一下

日记02

论偷懒还得是我了,上次偷懒,是给自己做了一个机器人,实现青年大学习推送提醒、今天吃什么建议、定时发送提醒信息或者按时续火花,以及一些其它次要功能,感兴趣可以入群体验

日记03

日记04

日记05


很期待这一天,所有新闻联播发布说,全球疫情终于结束。健康码,行程码功能关闭,所有人再也不用做核酸检测,不用戴口罩,万家灯火通明,等这一天的到来应该不会太久!!!