当前位置: 首页 > news >正文

auto.js v1.4.4 实现自动打卡

一、使用场景

  1. 所在公司的打卡软件可以单独变成一个可以点击的APP,所以只需要实现以下步骤:
    1. 自动解锁屏幕
    2. 返回主屏幕并打卡
    3. 锁定屏幕
  2. 需要的环境:
    1. 手机端下载并且安装 auto.js v4.1.1 
    2. PC端VS安装对应的插件
  3. 学习资料
    1. B站学习资料 对应 第三期第五期
    2. auto.js文档

二、环境搭建

1. 手机端下载并且安装 auto.js v4.1.1 github链接,记得要打开该APP所有手机权限(不需要root)

2. VSCode安装 Auto.js-Autox.js-VSCodeExt 插件

三、手机端auto.js和PC端进行连接

  1. 手机和PC位于同一个局域网
  2. 必须先打开VSCode Auto.js-Autox.js-VSCodeExt 插件 的服务器
    ctrl + shift + P 打开命令框
    start server 选择打开auto.js服务器
  3. 打开手机端的 auto.js 应用程序,点击左上角出现如下,在整个过程中需要的功能如下图:
  4. 可以在PC端编辑对应的脚本,并且使用以下过程进行调试
    ctrl + shift + P 打开命令框
    run 使得代码在对应的手机上运行

四、编辑脚本

注意:每一步操作需要sleep来保证操作已经执行

1. 自动解锁屏幕

  1. 重要的全局函数的基本功能:
    // 当前设备屏幕的宽和高
    device.width
    device.height// 判断当前设备的屏幕是否熄屏
    device.isScreenOn() // 唤醒屏幕
    device.wakeup()// 输入对应的按键
    click(keyWord);// 滑动手势
    // 从(x1, y1)的位置到(x2, y2)的位置经过duration时间滑动(ms)
    swipe(x1, y1, x2, y2, duration)
  2. 代码如下:
    // 基本过程:唤醒屏幕 -> 滑动屏幕 -> 进入数字密码锁,输入对应的密码
    let device_width = device.width;
    let device_height = device.height;
    // 判断屏幕是否是打开状态
    while(!device.isScreenOn()) {// 唤醒屏幕device.wakeUp();sleep(1000);// 滑动屏幕swipe(device_width / 4, device_height / 4, device_width / 4 * 3, device_height / 4, 1000);sleep(2000);// 输入密码let password = "xxxxxx";let length = password.length;for(let i = 0;i < length;i ++) {click(password[i]);sleep(500);}
    }

2. 返回主屏幕并打卡

  1. 关键理解和步骤:
    1. auto.js对于主页的理解并没有如我们手机的分页,所以只要返回主页就可以操作不同分页上的APP
    2. 想要获取对应APP所在的位置,可以看 五、获取APP所在位置
  2. 全局函数理解
    // 但会当前正在运行的页面,可以用来判断是不是位于主页
    currentActivity()// 利用全局函数selector(选择器获取对用位置)
    // 使用 五、获取主页名称、APP位置的方法 获取
  3. 代码如下
    // 返回主页
    if(currentActivity() != "见 五、获取主页名称、APP位置的方法 ") {home();sleep(500);
    }// 点击打卡
    // 见五、获取主页名称、APP位置的方法 
    className("android.widget.TextView").desc("打卡").findOne().click(); 
    

3. 锁定屏幕

  1. 由于auto.js并没有锁屏的函数,只需要在主屏幕 添加锁屏 的小部件,然后按照 2 方法进行点击即可
  2. 代码如下:
    sleep(5000);
    // 返回主页
    home();
    sleep(500);
    // 点击锁屏 根据 五、获取主页名称、APP位置的方法 
    className("android.widget.TextView").desc("一键锁屏").findOne().click();

五、获取主页名称、APP位置的方法 

  1. 获取主页名称
    1. 将手机页面置于主页
    2. 运行以下代码,即可在对应的命令窗口获取到主页的地址
      let cur_Activity = currentActivity()
      console.log(cur_Activity)
  2. 获取APP位置

需要代开悬浮窗的功能:

步骤如下:

六、最终的代码

let device_width = device.width;
let device_height = device.height;
// 判断屏幕是否是打开状态
while(!device.isScreenOn()) {// 唤醒屏幕device.wakeUp();sleep(1000);// 滑动屏幕swipe(device_width / 4, device_height / 4, device_width / 4 * 3, device_height / 4, 1000);sleep(2000);// 输入密码let password = "xxxxxx";let length = password.length;for(let i = 0;i < length;i ++) {click(password[i]);sleep(500);}
}// 返回主页 需要 五、获取主页名称、APP位置的方法 
if(currentActivity() != "com.huawei.android.launcher.unihome.UniHomeLauncher") {home();sleep(500);
}// 点击打卡 需要 五、获取主页名称、APP位置的方法 
className("android.widget.TextView").desc("打卡").findOne().click();sleep(5000);
// 返回主页
home();
sleep(500);
// 点击锁屏 五、获取主页名称、APP位置的方法 
className("android.widget.TextView").desc("一键锁屏").findOne().click();

七、设置定时(见 B站学习资料 第十六期)

http://www.lryc.cn/news/331647.html

相关文章:

  • 【Linux实验室】NFS、DHCP的搭建
  • Samba 总是需要输入网络凭证
  • 图像处理_积分图
  • B/S架构SaaS模式 医院云HIS系统源码,自主研发,支持电子病历4级
  • (C)1005 继续(3n+1)猜想
  • 编译好的C++应用程序拷贝到其它电脑,提示dll未找到依赖项的解决方法。
  • wps 开发插件
  • C语言----数据在内存中的存储
  • 【Linux学习】Linux 的虚拟化和容器化技术
  • Delphi 是一种内存安全的语言吗?
  • golang语言系列:Scrum、Kanban等敏捷管理策略
  • QT背景介绍
  • 动态规划详解(Dynamic Programming)
  • 前端大额计算,真正解决js精度丢失问题
  • Android笔记--MediaCodec(一)
  • Linux简单介绍
  • Servlet 的基本理解
  • JavaScript之applye、bind和call方法详解
  • Docker,anaconda环境的部署与迁移
  • 【大数据运维】Hbase shell 常见操作
  • LeetCode-217存在重复的元素
  • 基于两个单片机串行通信的电子密码锁设计
  • 产品经理功法修炼(3)之产品设计
  • Qt 的发展历史、现状与启示
  • Quiet-STaR:让语言模型在“说话”前思考
  • 【Kotlin】匿名类和伴生类
  • 【机器学习算法介绍】(3)决策树
  • 算法之查找
  • LInux脚本学习
  • JavaWeb基础(计网 socket 数据库 JDBC lombok Mybatis JUnit Maven)