怎么帮人做网站福建专业网站建设公司
一、使用场景
- 所在公司的打卡软件可以单独变成一个可以点击的APP,所以只需要实现以下步骤: 
- 自动解锁屏幕
 - 返回主屏幕并打卡
 - 锁定屏幕
 
 - 需要的环境: 
- 手机端下载并且安装 auto.js v4.1.1
 - PC端VS安装对应的插件
 
 - 学习资料 
- B站学习资料 对应 第三期,第五期
 - auto.js文档
 
 
二、环境搭建
1. 手机端下载并且安装 auto.js v4.1.1 github链接,记得要打开该APP所有手机权限(不需要root)
2. VSCode安装 Auto.js-Autox.js-VSCodeExt 插件
三、手机端auto.js和PC端进行连接
- 手机和PC位于同一个局域网
 - 必须先打开VSCode Auto.js-Autox.js-VSCodeExt 插件 的服务器 
ctrl + shift + P 打开命令框 start server 选择打开auto.js服务器 - 打开手机端的 auto.js 应用程序,点击左上角出现如下,在整个过程中需要的功能如下图:

 - 可以在PC端编辑对应的脚本,并且使用以下过程进行调试 
ctrl + shift + P 打开命令框 run 使得代码在对应的手机上运行 
四、编辑脚本
注意:每一步操作需要sleep来保证操作已经执行
1. 自动解锁屏幕
- 重要的全局函数的基本功能: 
// 当前设备屏幕的宽和高 device.width device.height// 判断当前设备的屏幕是否熄屏 device.isScreenOn() // 唤醒屏幕 device.wakeup()// 输入对应的按键 click(keyWord);// 滑动手势 // 从(x1, y1)的位置到(x2, y2)的位置经过duration时间滑动(ms) swipe(x1, y1, x2, y2, duration) - 代码如下: 
// 基本过程:唤醒屏幕 -> 滑动屏幕 -> 进入数字密码锁,输入对应的密码 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. 返回主屏幕并打卡
- 关键理解和步骤: 
- auto.js对于主页的理解并没有如我们手机的分页,所以只要返回主页就可以操作不同分页上的APP
 - 想要获取对应APP所在的位置,可以看 五、获取APP所在位置
 
 - 全局函数理解 
// 但会当前正在运行的页面,可以用来判断是不是位于主页 currentActivity()// 利用全局函数selector(选择器获取对用位置) // 使用 五、获取主页名称、APP位置的方法 获取 - 代码如下 
// 返回主页 if(currentActivity() != "见 五、获取主页名称、APP位置的方法 ") {home();sleep(500); }// 点击打卡 // 见五、获取主页名称、APP位置的方法 className("android.widget.TextView").desc("打卡").findOne().click(); 
3. 锁定屏幕
- 由于auto.js并没有锁屏的函数,只需要在主屏幕 添加锁屏 的小部件,然后按照 2 方法进行点击即可
 - 代码如下: 
sleep(5000); // 返回主页 home(); sleep(500); // 点击锁屏 根据 五、获取主页名称、APP位置的方法 className("android.widget.TextView").desc("一键锁屏").findOne().click(); 
五、获取主页名称、APP位置的方法
- 获取主页名称 
- 将手机页面置于主页
 - 运行以下代码,即可在对应的命令窗口获取到主页的地址 
let cur_Activity = currentActivity() console.log(cur_Activity) 
 - 获取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();
 

