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

  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
AutoJS是一个基于JavaScript的Android自动化工具,它可以帮助我们自动化各种Android设备上的操作,包括模拟按键、触摸、滑动、截图等。而钉钉是一款流行的企业办公软件,用于员工考勤和工作通讯。 想要用AutoJS实现钉钉打卡,我们首先需要安装AutoJS应用到我们的Android设备上,并将设备连接到电脑。然后,在AutoJS的IDE中编写打卡脚本。 实现钉钉打卡脚本大致分为以下几个步骤: 1. 启动钉钉应用:可以使用AutoJS提供的shell函数执行启动钉钉应用的命令。 2. 登录钉钉账号:我们可以通过模拟按键的方式,将登录页面的用户名和密码输入框填入正确的账号信息,并模拟点击登录按钮。 3. 进入打卡界面:脚本可以通过模拟触摸的方式滑动屏幕,将钉钉应用的主页面滑动到打卡入口位置,并模拟点击进入打卡界面。 4. 进行打卡操作:在打卡界面,可以使用模拟点击的方式找到打卡按钮,并点击进行打卡操作。 5. 结束打卡流程:打卡完成后,可以退出钉钉应用,或者返回到主页面,等待下一次打卡。 需要注意的是,由于钉钉的安全机制,可能会对自动化操作进行检测和阻止,因此我们需要在编写脚本时尽量模拟人的行为,避免被发现。 AutoJS提供了丰富的操作API,可以用于实现更加复杂的自动化任务。通过编写脚本,我们可以让AutoJS帮助我们完成繁琐的打卡操作,提高工作效率。但是我们需要遵守公司的规定和要求,确保合法合规使用AutoJS,以免引起不必要的麻烦。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值