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.hqwc.cn/news/591896.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通义灵码/Baidu Comate真能取代程序员吗?

目录 背景Baidu Comate通义灵码 思考 背景 Baidu Comate Baidu Comate提供AutoWork功能&#xff0c;号称“开发者只需定义需求&#xff0c;剩下的交给Comate AutoWork”。【李彦宏也说了&#xff0c;未来不会有程序员了~】 既然“Baidu Comate全新升级&#xff0c;向个人开发…

Unity开发者3D模型基础

术语“3D 建模”是指使用特殊软件创建对象或表面的 3D 数字表示的过程。 3D 模型可用于各种不同的目的&#xff0c;包括电影、视频游戏、建筑和工程。 3D 建模也是创建虚拟现实 (VR) 和增强现实 (AR) 体验工作的重要组成部分。 我们通常通过构建或获取 3D 模型并将其导入 Unit…

震惊!!原来阻塞队列消息队列这样理解会更简单!!!

震惊!!原来阻塞队列&&消息队列这样理解会更简单!!! 一:阻塞队列二:消息队列2.1:生产者消费者模型2.1.1:解耦合:2.1.2:削峰填谷: 三:消息队列代码3.1.13.1.2:3.1.3:生产慢,消费快,消费阻塞3.1.3:生产快,消费慢,生产阻塞 二级目录二级目录 一:阻塞队列 阻塞队列:先进先出…

信息传播的AI时代:机器学习赋能新闻出版业的数字化之旅

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

Canvas背景绘制-24

本节会详细介绍下&#xff0c;如何绘制面板的背景。 概述 常用的技术称为图块复制(blitting)&#xff0c;即从离屏缓冲区中将内容发生变化的那部分背景图像复制到屏幕上&#xff0c;还有其它两种方法是将所有内容擦除并重新绘制&仅重绘内容发生变化的那部分区域。一般是用…

云原生技术精选:探索腾讯云容器与函数计算的最佳实践

文章目录 写在前面《2023腾讯云容器和函数计算技术实践精选集》深度解读案例集特色&#xff1a;腾讯云的创新实践与技术突破精选案例分析——Stable Diffusion云原生部署的最佳实践精选集实用建议分享总结 写在前面 在数字化转型的浪潮下&#xff0c;云计算技术已成为企业运营…

【信号与系统 - 2】傅里叶变换与反变换

1 傅里叶变换与频谱密度函数 非周期信号可以看成是 T → ∞ T\to{\infty} T→∞ 的周期信号 由于 w ↓ 2 π T ↑ w\downarrow\frac{2\pi}{T\uparrow} w↓T↑2π​&#xff0c; T T T 无限大&#xff0c;则基波频率 w w w 无限小&#xff0c;可以视为 d w dw dw 在频谱图…

【Java EE】Maven jar 包下载失败问题的解决方法

文章目录 1. 配置好国内的Maven源1.1配置当前项⽬setting1.2设置新项⽬的setting 2.重新下载jar包3.其他问题⭕总结 1. 配置好国内的Maven源 因为中央仓库在国外, 所以下载起来会⽐较慢, 所以咱们选择借助国内⼀些公开的远程仓库来下载资源 接下来介绍, 如何设置国内源 1.1配…

51入门之LED

目录 1.配置文件 2.点亮一个LED 2.1单个端口操作点亮单个LED 2.2整体操作点亮LED 3.LED闪烁 4.LED实现流水灯 4.1使用for循环和移位实现 4.1.1移位操作符 4.1.2使用移位操作和for循环实现 4.2使用移位函数实现LED流水灯 众所周知&#xff0c;任何一个硬件工程师…

检测头篇 | 利用RT-DETR模型的检测头去替换YOLOv8中的检测头

前言:Hello大家好,我是小哥谈。RT-DETR号称是打败YOLO的检测模型,其作为一种基于Transformer的检测方法,相较于传统的基于卷积的检测方法,提供了更为全面和深入的特征理解,将RT-DETR检测头融入YOLOv8,我们可以结合YOLO的实时检测能力和RT-DETR的深度特征理解能力,打造出…

探讨在大数据体系中API的通信机制与工作原理

** 引言 关联阅读博客文章&#xff1a;深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章&#xff1a;深入理解HDFS工作原理&#xff1a;大数据存储和容错性机制解析 ** 在当今数字化时代&#xff0c;数据已经成为企业发展和决策的核心。随着数据规模的不断增长…

使用CSS计数器,在目录名称前加上了序号,让目录看起来更加井然有序

目录&#xff08;Text of Contents缩写为TOC&#xff09;&#xff0c;其实就是一篇文章的概要或简述。这好比&#xff0c;去书店买书&#xff0c;先是被这本书的标题所吸引&#xff0c;而后我们才会&#xff0c;翻开这本书目录&#xff0c;看看这本书主要是在讲些什么&#xff…