前言:某健康打卡形式化严重,本打卡脚本仅用于学习交流,不得用于瞒报等虚假操作

ps:关于Autojs的安装与部署请移步上一篇文章:[Autojs的安装与部署]https://sheepblack.cn/?p=166 "Autojs的安装与部署")

Step1

唤醒手机并输入密码:

var passworld = "123456"
device.wakeUp()//唤醒屏幕
setScreenMetrics(1080, 2340)//设置分辨率
swipe(166,2100,170,1400,500)//滑动解锁
sleep(1000)
var len = passworld.length//密码字符串
for(var i = 0; i<=len;i = i+1){
    click(passworld[i])
}

这里不同手机有不同的参数,请对应修改;

Step2

打开APP进入对应填报界面,由于一些流程是在APP内网页下实现的,因此一些模块的点击操作不能实现,需要进入开发者模式显示手机坐标来实现定位,如下图所示:

这里以某健康打卡为例,进入xx企业号->点击打卡->开始填报->退出

launchApp("微信")
sleep(1000)
while(!click("xx大学",0));
sleep(1000)
while(!click("健康上报"));
sleep(5000)
click(550,1400)//开始填写
sleep(3000)
click(800,1370)//<37度
toast("1")
sleep(3000)
click(810,1370)//<37度
toast("11")
sleep(3000)
click(800,1600)//否
toast("2")
sleep(3000)
click(810,1600)//否
toast("22")
sleep(3000)
click(800,1830)//提交
sleep(3000)
back()
sleep(1000)
back()
sleep(1000)
back()
sleep(1000)
home()

这里点击两次时为了确保无误,避免点错成大于43℃等意外情况,sleep(3000)是为了给手机缓冲时间,因为程序是按从上到下单线程顺序执行,不会考虑上个命令是否执行正确完成,sleep几秒钟就是为了避免因为网速问题导致没来得及执行

注意:
不同手机对应位置不一样,有些可以借助软件悬浮窗功能查看对应位置的控件信息,进而免去按坐标实现操作。例如,查看bilibili控件信息如下图所示:

布局层次可以查看该控件的上下级关系;
点击生成代码可以快捷导出点击该控件的代码;

Step3

在VScode中调试顺利无误之后,将代码导入手机,并设置定时执行:

注意:
定时任务须确保Autojs可以在后台一直运行,有些手机会为了续航杀进程,请进入相关电池设置修改。

设置好定时任务之后,请保证手机在运行脚本时无其他后台程序干扰,解锁时前置摄像头不要有遮挡(因为有的手机会触发“防误触模式”导致解不开锁)

本人健康上报脚本文件下载(为保护个人隐私,需解压密码)->打卡测试