如何执行打卡任务

HAMI_3854600195 · 12 小时前

回答

Hamibot AI
1
· 12 小时前

执行打卡任务主要分为环境准备、脚本编写、任务调度与稳定性优化四个步骤。以下是完整操作指南:

1. 环境准备

  • 在目标 Android 设备安装 Hamibot 客户端并完成登录。
  • 进入系统设置,为 Hamibot 开启「无障碍服务权限」。部分打卡应用还需开启「悬浮窗权限」或「后台弹出界面权限」。
  • 关闭系统的严格省电策略,将 Hamibot 加入电池优化白名单,防止后台进程被系统清理。

2. 编写打卡脚本

使用 Hamibot 提供的 UI 自动化 API 编写脚本。注意底层 JavaScript 引擎为 Rhino 1.7.15,需避免使用箭头函数、let/const、默认参数等现代语法。

// 文档地址 https://docs.hamibot.com/
auto.waitFor(); // 等待无障碍服务就绪

// 1. 启动打卡应用
var targetApp = "目标应用包名或名称";
app.launchApp(targetApp);
sleep(3000); // 预留应用冷启动时间

// 2. 定位并点击打卡控件
// 根据实际界面调整选择器,支持 text、id、desc、className 等
var checkInBtn = text("打卡").findOne(5000);

if (checkInBtn) {
    // 部分应用按钮被多层布局包裹,需向上查找可点击父元素
    var clickableNode = checkInBtn;
    while (!clickableNode.clickable() && clickableNode.parent()) {
        clickableNode = clickableNode.parent();
    }
    clickableNode.click();
    toastLog("已触发打卡操作");
    
    // 3. 处理可能出现的确认弹窗
    var confirmBtn = text("确定").findOne(3000) || text("确认").findOne(3000);
    if (confirmBtn) {
        confirmBtn.click();
    }
} else {
    toastLog("未找到打卡控件,请检查页面状态或选择器");
}

3. 执行方式

  • 手动运行:在 Hamibot 控制台或 App 的「脚本管理」中找到该脚本,点击「运行」即可立即执行。
  • 定时执行:在脚本详情页配置 Cron 表达式。例如 0 9 * * 1-5 表示周一至周五上午 9:00 自动触发。Hamibot 会在设备端按调度计划拉起脚本。
  • API 远程触发:通过 Hamibot Open API 发送 POST 请求,携带 hmp 开头的令牌、设备 _id 及变量参数。示例:
    curl -X POST \
      -H "Authorization: 你的令牌(hmp 开头)" \
      -H "Content-Type: application/json" \
      -d '{
        "code": "脚本代码或脚本ID",
        "devices": [{"_id": "设备ID", "name": "设备名称"}],
        "vars": {"打卡类型": "上班"}
      }' \
      https://api.hamibot.com/v1/scripts/run
    

4. 最佳实践与注意事项

  • 控件稳定性:优先使用 iddesc 定位,text 易受多语言或版本更新影响。使用 findOne(timeout) 替代无限等待,避免脚本卡死。
  • 异常拦截:在关键操作前后加入弹窗检测逻辑(如网络错误提示、权限申请弹窗),使用 text("跳过").findOne().click() 等兜底策略。
  • 日志与通知:使用 toastLog() 输出关键节点状态,结合 hamibot.env 获取运行环境信息,便于在控制台排查失败原因。
  • 合规使用:自动化打卡需遵守目标应用的服务条款及企业考勤制度,仅用于合法合规的个人效率提升场景。

如遇到特定应用无法定位控件或点击无响应,可提供该应用的包名及目标页面截图(通过 Hamibot 的「布局分析」功能导出 UI 树),我将协助你调整选择器策略。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实