1. 判断手机是否锁屏,若处于锁屏状态则唤醒手机,划出特定的图形解锁
  2. 关闭特定的软件
  3. 判断设备是否联网,没有联网通知栏弹出通知结束任务
  4. 通过软件包名打开软件,判断软件是否成功打开,等待一段时间,判断软件界面是否有弹窗,若有找到对应关闭位置关闭弹窗
  5. 找到界面对应文字,点击文字并判断是否成功点击,关闭点击后可能出现对的弹窗;
  6. 退出软件,结束脚本
城月 · 14 小时前

回答

Hamibot AI
1
· 14 小时前

以下脚本实现了你列出的所有步骤,可根据实际需求调整图案解锁的坐标和关闭弹窗的文本匹配规则。

// 文档地址 https://docs.hamibot.com/

// 强制关闭应用(通过应用名称或包名)
function closeApp(target) {
    var pkg = getPackageName(target);
    if (!pkg) {
        if (getAppName(target)) {
            pkg = target;
        } else {
            return false;
        }
    }
    app.openAppSetting(pkg);
    text(app.getAppName(pkg)).waitFor();
    sleep(1000);
    var stopBtn = textMatches(/(.*强.*|.*停.*|.*结.*)/).findOne();
    if (stopBtn && stopBtn.enabled()) {
        stopBtn.click();
        text("确定").waitFor();
        text("确定").click();
        return true;
    }
    return false;
}

// 判断是否联网(尝试访问百度,超时 3 秒)
function isNetworkConnected() {
    try {
        var res = http.get("http://www.baidu.com", { timeout: 3000 });
        if (res && res.statusCode == 200) {
            return true;
        }
    } catch (e) { }
    return false;
}

// 解锁图案(示例为 3x3 网格,点坐标需要根据实际解锁图案调整)
function unlockPattern() {
    var points = [
        [200, 600],  // 点1
        [540, 600],  // 点2
        [540, 940],  // 点3
        [200, 940],  // 点4
    ];  // 根据你的图案修改坐标
    gesture(500, points);
    sleep(1000);
}

// ---------- 主流程 ----------
// 1. 判断锁屏并唤醒,解锁
if (!device.isScreenOn()) {
    device.wakeUp();
    sleep(500);
    // 滑动解锁(如果系统有滑动锁屏,也可以先 swipe,再绘制图案)
    swipe(500, 1500, 500, 500, 300);
    sleep(500);
    unlockPattern();  // 图案解锁
}

// 2. 关闭特定软件(这里以“微信”为例,请替换为你的目标应用)
var targetAppName = "微信";
closeApp(targetAppName);
sleep(1000);

// 3. 检查网络连接
if (!isNetworkConnected()) {
    toast("设备未联网,任务结束");
    exit();
}

// 4. 打开目标软件(通过包名,这里以微信的包名举例)
var targetPackage = "com.tencent.mm";
app.launchPackage(targetPackage);
sleep(3000);

// 判断是否成功打开(当前包名是否为目标包名)
if (currentPackage() != targetPackage) {
    toast("应用打开失败,退出");
    exit();
}

// 检查是否有弹窗,并关闭(示例:查找包含“关闭”、“取消”的按钮)
var popupClose = textMatches(/(.*关闭.*|.*取消.*|.*跳过.*)/).findOne(3000);
if (popupClose) {
    popupClose.click();
    sleep(1000);
}

// 5. 找到指定文字并点击(示例:点击“发现”)
var targetText = "发现";
var targetView = text(targetText).findOne(5000);
if (targetView) {
    targetView.click();
    sleep(1000);
    // 关闭可能出现的弹窗(同上)
    var popupAfterClick = textMatches(/(.*关闭.*|.*取消.*|.*跳过.*)/).findOne(3000);
    if (popupAfterClick) {
        popupAfterClick.click();
        sleep(1000);
    }
} else {
    toast("未找到目标文字:" + targetText);
}

// 6. 退出软件并结束脚本
closeApp(targetAppName);
toast("任务完成");
exit();

使用说明

  1. 解锁图案unlockPattern 函数中的坐标数组需要根据你的真实解锁图案调整。可以先在 Hamibot 的“悬浮窗”工具中获取触摸坐标,按顺序填入即可。
  2. 关闭应用closeApp 函数通过应用设置页强制停止,兼容大部分 Android 系统。
  3. 网络检测:通过访问百度首页判断,超时 3 秒。如果无网络会弹出 toast 并退出。
  4. 弹窗关闭:脚本使用文本匹配查找“关闭/取消/跳过”等按钮,若你的弹窗文字不同,请修改正则表达式。
  5. 目标文本:将 targetText 改为你要点击的文字,超时 5 秒未找到会提示并继续。
  6. 退出软件:最后再次调用 closeApp 确保应用完全退出。

如果你需要更精确的 UI 操作,可以结合 Hamibot 的“录制脚本”功能生成控件选择器,替换到脚本中。

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