写一个Hamibot UC浏览器自动打卡脚本

明月挽轻纱 · 24 小时前

回答

Hamibot AI
1
· 24 小时前

以下是为你编写的 Hamibot UC浏览器自动打卡脚本模板。由于 UC 浏览器版本更新频繁,打卡入口可能位于原生界面或 H5/WebView 页面中,脚本采用通用选择器+重试机制设计,你需根据实际界面微调文本或坐标。

// 文档地址 https://docs.hamibot.com/
// UC浏览器自动打卡脚本模板
// 注意:UI元素可能随版本更新变化,请根据实际情况调整选择器或坐标

auto.waitFor();

var config = {
    appName: "UC浏览器",
    packageName: "com.UCMobile",
    clockInText: "打卡",
    successTexts: ["打卡成功", "已打卡", "签到成功", "今日已打卡"],
    maxRetries: 3,
    retryDelay: 2000
};

function main() {
    log("开始执行UC浏览器自动打卡任务");
    launchApp(config.appName);
    sleep(4000);

    if (!enterClockInPage()) {
        log("未能进入打卡页面,任务终止");
        return;
    }

    sleep(2000);
    performClockIn();
}

function enterClockInPage() {
    // 示例路径:底部导航 -> 我的 -> 打卡入口
    // 请根据实际界面替换选择器
    var myTab = text("我的").findOne(3000) || desc("我的").findOne(3000);
    if (myTab) {
        myTab.click();
        sleep(1500);
    }

    var entry = text("每日打卡").findOne(2000) || 
                text("签到打卡").findOne(2000) || 
                text("活动打卡").findOne(2000);
    if (entry) {
        entry.click();
        return true;
    }
    return false;
}

function performClockIn() {
    var retryCount = 0;
    while (retryCount < config.maxRetries) {
        var btn = text(config.clockInText).findOne(2000) ||
                  text("立即打卡").findOne(2000) ||
                  desc(config.clockInText).findOne(2000);

        if (btn) {
            btn.click();
            log("已点击打卡按钮");
            sleep(3000);

            for (var i = 0; i < config.successTexts.length; i++) {
                if (text(config.successTexts[i]).exists()) {
                    log("打卡成功!");
                    return;
                }
            }
        }

        retryCount++;
        log("第 " + retryCount + " 次尝试打卡,等待重试...");
        sleep(config.retryDelay);
    }
    log("打卡失败,已达到最大重试次数");
}

main();

使用与适配指南

  1. 获取准确选择器:在 Hamibot 控制台或手机端打开脚本编辑器,点击「布局分析」,点击 UC 浏览器中的打卡按钮,查看 textdescidclassName 属性,替换脚本中的对应值。
  2. WebView 页面处理:若打卡按钮位于网页内,原生 text() 可能无法识别。可尝试:
    • 使用 click(x, y) 坐标点击(通过布局分析获取中心坐标)
    • 或启用 WebView 调试:auto.setWebViewDebuggingEnabled(true)(需 UC 浏览器支持)
  3. 权限要求:确保设备已开启无障碍服务、悬浮窗权限(如需),并在 Hamibot 客户端授予脚本运行权限。
  4. 定时执行:在 Hamibot 控制台创建「定时任务」,设置每日固定时间触发此脚本,实现全自动打卡。

最佳实践建议

  • 添加 try...catch 包裹关键点击操作,避免异常中断。
  • 使用 waitFor() 替代固定 sleep() 提升稳定性,例如:text("打卡").waitFor(5000)
  • 打卡成功后可调用 home()back() 返回桌面,避免停留在活动页。
  • 定期使用布局分析验证选择器有效性,UC 浏览器大版本更新后通常需微调。

如需针对你提供的截图界面定制精确选择器,请描述截图中的按钮文本、位置或层级结构,我将为你生成对应代码。

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