如何定时打开企业微信打卡

HAMI_9603343943 · 2 小时前

回答

Hamibot AI
1
· 2 小时前

实现企业微信定时打卡,主要通过 Hamibot 控制台的“定时任务”功能配合自动化脚本来完成。以下是具体的实现方案、脚本示例及最佳实践建议。

一、实现方案

  1. 定时触发:利用 Hamibot 云控平台的定时任务功能,设置每天特定时间(如 8:55)自动触发脚本。
  2. 自动化操作:脚本负责唤醒设备、打开企业微信、定位打卡按钮并点击。
  3. 环境准备
    • 设备需保持联网且屏幕常亮(或支持唤醒)。
    • 授予 Hamibot 无障碍服务权限、屏幕截图权限、悬浮窗权限。
    • 企业微信需保持登录状态。

二、脚本代码示例

以下脚本实现了打开企业微信并通过图像识别寻找打卡按钮的功能。请在脚本开头保留文档地址注释,以确保兼容性。

// 文档地址 https://docs.hamibot.com/
auto.waitFor();

// 请求屏幕截图权限
if (!requestScreenCapture()) {
    toastLog('没有授予 Hamibot 屏幕截图权限');
    hamibot.exit();
}

// 配置参数
var wecomPackage = 'com.tencent.wework';
var clockInImage = '/sdcard/clock_in_button.png'; // 需预先保存打卡按钮截图
var maxWaitTime = 60000; // 最大等待时间 60 秒
var startTime = Date.now();

// 打开企业微信
toastLog('正在打开企业微信...');
app.launchPackage(wecomPackage);

// 等待应用加载
sleep(3000);

// 主逻辑:寻找并点击打卡按钮
var clicked = false;
while (!clicked && (Date.now() - startTime < maxWaitTime)) {
    var screen = captureScreen();
    
    // 尝试通过找图点击
    var p = images.findImage(screen, images.read(clockInImage), {
        threshold: 0.8
    });
    
    if (p) {
        click(p.x, p.y);
        toastLog('打卡成功');
        clicked = true;
    } else {
        // 如果找图失败,可尝试滑动屏幕后再找
        swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.2, 1000);
        sleep(1000);
    }
}

if (!clicked) {
    toastLog('未找到打卡按钮,请检查截图或界面');
}

hamibot.exit();

三、关键步骤说明

  1. 素材准备

    • 使用 images.read() 读取的打卡按钮图片(如 clock_in_button.png)需要预先截取并上传到设备指定路径。
    • 建议截取按钮特征明显的部分,避免包含动态变化的内容。
  2. 应用启动

    • 使用 app.launchPackage('com.tencent.wework') 直接拉起企业微信。
    • 若需跳转到特定活动页,可参考 app.startActivity 接口构造 Intent。
  3. 识别策略

    • 图像识别:适用于按钮位置固定、样式不变的场景。使用 images.findImage 配合 threshold 阈值调整相似度。
    • 文字识别 (OCR):若按钮样式经常变化,可使用 ocr.recognizeText 识别“打卡”文字后计算坐标点击。
    • 多点找色:对于图标类按钮,可使用 images.findMultiColors 提高识别速度和准确性。

四、最佳实践建议

  1. 稳定性优化

    • findImage 前增加 sleep 等待页面加载完成,避免操作过快导致失败。
    • 增加异常处理,如网络断开、应用崩溃时的重试逻辑或通知提醒。
    • 使用 toastLog 记录执行日志,便于在 Hamibot 控制台排查问题。
  2. 定时任务配置

    • 在 Hamibot 控制台创建“定时任务”,选择上述脚本。
    • 设置执行时间为工作日指定时间。
    • 建议设置提前几分钟执行,预留网络加载和设备唤醒时间。
  3. 设备维护

    • 确保运行设备电量充足,建议连接电源。
    • 关闭系统自动锁屏,或在脚本中加入唤醒屏幕的逻辑。
    • 定期更新打卡按钮截图,以适应企业微信版本更新导致的 UI 变化。

通过以上配置,即可实现稳定可靠的企业微信自动定时打卡。如有更复杂的交互需求,可结合 ocr 模块或 ui 模块进行进阶开发。

ℹ️ 本回答由 AI 生成,内容仅供参考