回答
要实现美信软件的定时打卡功能,你可以使用Hamibot编写自动化脚本。下面是一个完整的实现方案:
文档地址 https://docs.hamibot.com/
// 设置打卡时间(24小时制)
const CHECK_IN_HOUR = 9; // 上班打卡小时
const CHECK_IN_MIN = 0; // 上班打卡分钟
const CHECK_OUT_HOUR = 18; // 下班打卡小时
const CHECK_OUT_MIN = 0; // 下班打卡分钟
// 美信软件包名(需要你根据实际应用填写)
const APP_PACKAGE = "com.example.meixin"; // 请替换为实际包名
// 保持屏幕常亮,防止执行过程中屏幕熄灭
device.keepScreenOn(300000); // 保持5分钟屏幕常亮
// 检查是否到达打卡时间
function isCheckInTime() {
var now = new Date();
return now.getHours() === CHECK_IN_HOUR && now.getMinutes() === CHECK_IN_MIN;
}
function isCheckOutTime() {
var now = new Date();
return now.getHours() === CHECK_OUT_HOUR && now.getMinutes() === CHECK_OUT_MIN;
}
// 唤醒设备并解锁(如果需要)
function wakeUpAndUnlock() {
device.wakeUpIfNeeded();
sleep(1000);
// 如果有锁屏,这里添加解锁操作
// 例如:swipe(500, 1500, 500, 500, 300);
// sleep(1000);
// id("lock_pattern_view").findOne().click(); // 根据实际锁屏界面操作
}
// 打开美信应用
function openMeiXinApp() {
app.launch(APP_PACKAGE);
waitForPackage(APP_PACKAGE, 10000); // 等待应用启动,最多10秒
sleep(3000); // 等待界面加载
}
// 执行打卡操作
function doCheckIn() {
log("开始执行打卡操作...");
// 根据美信软件界面结构调整以下选择器
// 示例:点击工作台
text("工作台").findOne(5000).click();
sleep(2000);
// 示例:点击考勤打卡
text("考勤打卡").findOne(5000).click();
sleep(3000);
// 示例:点击打卡按钮
// 根据实际界面可能需要调整选择器
var checkInButton = textMatches(/(上班打卡|签到|打卡)/).findOne(5000);
if (checkInButton) {
checkInButton.click();
log("打卡操作已执行");
sleep(2000);
// 如果有确认按钮
var confirmButton = textMatches(/(确定|确认)/).findOne(2000);
if (confirmButton) {
confirmButton.click();
}
} else {
log("未找到打卡按钮,请检查界面元素");
}
back();
sleep(1000);
back();
sleep(1000);
}
// 主循环
while (true) {
var now = new Date();
log("当前时间: " + now.toLocaleTimeString());
// 检查是否到达上班打卡时间
if (isCheckInTime()) {
wakeUpAndUnlock();
openMeiXinApp();
doCheckIn();
log("已执行上班打卡");
}
// 检查是否到达下班打卡时间
if (isCheckOutTime()) {
wakeUpAndUnlock();
openMeiXinApp();
doCheckIn();
log("已执行下班打卡");
}
// 每分钟检查一次
sleep(60000);
}
使用说明:
-
首先需要确定美信软件的实际包名,可以通过以下方法获取:
// 运行此代码获取当前应用包名 console.show(); setInterval(function() { log("当前应用包名: " + currentPackage()); }, 1000);打开美信软件后查看控制台输出
-
根据美信软件的实际界面结构调整脚本中的选择器:
- text("工作台") → 替换为美信中"工作台"的实际文本
- text("考勤打卡") → 替换为实际的考勤入口文本
- textMatches(/(上班打卡|签到|打卡)/) → 根据实际打卡按钮文本调整
-
如果美信软件有锁屏,请在wakeUpAndUnlock函数中添加相应的解锁操作
-
设置定时任务:
- 在Hamibot中创建新脚本,粘贴上述代码并调整
- 设置脚本为"守护进程"模式,确保长期运行
- 在"任务"中设置"开机启动",保证设备重启后脚本能自动运行
-
测试脚本:
- 先手动运行脚本,确认所有操作步骤正确
- 调整sleep时间,确保每个操作有足够时间完成
- 检查是否有弹窗需要处理
注意:不同版本的美信软件界面可能不同,请根据实际情况调整选择器。如果打卡需要定位权限,请确保在Hamibot中开启了"模拟位置"功能,并设置合适的坐标。
ℹ️ 本回答由 AI 生成,内容仅供参考