- 判断手机是否锁屏,若处于锁屏状态则唤醒手机,划出特定的图形解锁
- 关闭特定的软件
- 判断设备是否联网,没有联网通知栏弹出通知结束任务
- 通过软件包名打开软件,判断软件是否成功打开,等待一段时间,判断软件界面是否有弹窗,若有找到对应关闭位置关闭弹窗
- 找到界面对应文字,点击文字并判断是否成功点击,关闭点击后可能出现对的弹窗;
- 退出软件,结束脚本
回答
以下脚本实现了你列出的所有步骤,可根据实际需求调整图案解锁的坐标和关闭弹窗的文本匹配规则。
// 文档地址 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();
使用说明
- 解锁图案:
unlockPattern函数中的坐标数组需要根据你的真实解锁图案调整。可以先在 Hamibot 的“悬浮窗”工具中获取触摸坐标,按顺序填入即可。 - 关闭应用:
closeApp函数通过应用设置页强制停止,兼容大部分 Android 系统。 - 网络检测:通过访问百度首页判断,超时 3 秒。如果无网络会弹出 toast 并退出。
- 弹窗关闭:脚本使用文本匹配查找“关闭/取消/跳过”等按钮,若你的弹窗文字不同,请修改正则表达式。
- 目标文本:将
targetText改为你要点击的文字,超时 5 秒未找到会提示并继续。 - 退出软件:最后再次调用
closeApp确保应用完全退出。
如果你需要更精确的 UI 操作,可以结合 Hamibot 的“录制脚本”功能生成控件选择器,替换到脚本中。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实