// ========== 1. 全局初始化与防检测函数 ==========
auto.waitFor(); // 阻塞等待无障碍服务开启
// 【全局弹窗处理】独立线程运行,随时处理干扰
threads.start(function() {
while (true) {
var closeTexts = ["关闭", "跳过", "取消", "我知道了", "好的", "同意"];
for (var i = 0; i < closeTexts.length; i++) {
var closeBtn = text(closeTexts[i]).findOne(1000);
if (closeBtn) {
closeBtn.click();
log("自动关闭了弹窗: " + closeTexts[i]);
sleep(500);
}
}
}
});
// 拟人化点击:在控件范围内随机取坐标
function smartClick(uiObject) {
if (!uiObject) return;
var bounds = uiObject.bounds();
var x = random(bounds.left + 10, bounds.right - 10);
var y = random(bounds.top + 10, bounds.bottom - 10);
click(x, y);
sleep(random(300, 800));
}
// 拟人化滑动:随机起点、终点和时长(用于日常浏览)
function humanSwipe() {
var w = device.width, h = device.height;
var startX = random(w * 0.2, w * 0.8);
var startY = random(h * 0.3, h * 0.7);
var endX = random(w * 0.2, w * 0.8);
var endY = random(h * 0.3, h * 0.7);
var duration = random(300, 800);
swipe(startX, startY, endX, endY, duration);
sleep(random(500, 1500));
}
// 模拟真人停留并随机滑动(20~60秒)
function simulateHumanStay() {
var totalTime = random(20000, 60000);
var startTime = new Date().getTime();
log("开始模拟真人浏览,预计停留 " + (totalTime/1000) + " 秒...");
while (new Date().getTime() - startTime < totalTime) {
humanSwipe();
sleep(random(2000, 5000));
}
}
// 清理后台所有应用
function clearAllBackgroundApps() {
log("正在清理后台应用...");
home(); sleep(1000);
recents(); sleep(1000);
var clearBtn = text("清除").findOne(2000) || text("全部清理").findOne(2000) || desc("清除").findOne(2000);
if (clearBtn) {
smartClick(clearBtn);
sleep(1000);
} else {
swipe(device.width / 2, device.height / 2, device.width / 2, device.height / 4, 300);
}
home(); sleep(1000);
}
// ========== 2. 核心难点:滑块验证码处理 ==========
function handleSliderCaptcha() {
// 检测是否出现滑块验证
var sliderTip = textContains("拖动").findOne(1500) || textContains("向右滑动").findOne(1500);
if (sliderTip) {
log("⚠️ 检测到滑块验证码,正在尝试破解...");
sleep(1000);
// 1. 截取当前屏幕
var img = captureScreen();
if (!img) {
log("截图失败");
return;
}
// 2. 寻找滑块缺口位置 (基于颜色找点备用方案)
var point = images.findColor(img, "#E0E0E0", {threshold: 10});
if (point) {
var targetX = point.x;
var sliderStartX = device.width * 0.1;
var sliderY = point.y;
log("识别到缺口 X 坐标: " + targetX);
// 3. 生成拟人化滑动轨迹(先加速后减速,带微小抖动)
var distance = targetX - sliderStartX;
var track = [];
var current = 0, mid = distance * 4 / 5, t = 0.2, v = 0;
while (current < distance) {
var a = current < mid ? 2 : -3;
v = v + a * t;
var move = v * t + 0.5 * a * t * t;
current += move;
track.push(Math.round(current));
}
// 4. 执行滑动
var x = sliderStartX;
gesture(0, [sliderStartX, sliderY], track.map(function(step) {
x = sliderStartX + step;
return [x, sliderY + random(-2, 2)];
}));
} else {
log("未能识别缺口位置,请手动处理或更换小图模板");
}
sleep(2000);
}
}
// ========== 3. 任务执行模块 ==========
// 任务一:OPPO 软件商店
function taskAppStore() {
log("🚀 开始执行【软件商店】任务");
app.launchPackage("com.heytap.market"); sleep(3000);
var myTab = text("我的").findOne(5000);
if (myTab) smartClick(myTab); else { log("未找到'我的'"); return; }
sleep(2000);
var rewardBtn = text("领取奖励").findOne(5000);
if (rewardBtn) smartClick(rewardBtn); else { log("未找到'领取奖励'"); }
sleep(2000);
while (true) {
var openBtn = text("打开").findOne(3000);
if (openBtn) {
smartClick(openBtn);
handleSliderCaptcha();
simulateHumanStay();
back(); sleep(2000);
} else {
log("✅ 【软件商店】任务已完成");
break;
}
}
}
// 任务二:OPPO 主题商店
function taskThemeStore() {
log("🚀 开始执行【主题商店】任务");
app.launchPackage("com.heytap.themestore"); sleep(3000);
var recommend = text("推荐").findOne(5000);
if (recommend) smartClick(recommend); else { log("未找到'推荐'"); return; }
sleep(2000);
var freeBtn = text("免领取").findOne(5000);
if (freeBtn) smartClick(freeBtn); else { log("未找到'免领取'"); return; }
sleep(2000);
while (true) {
var browseBtn = text("去浏览").findOne(3000);
if (browseBtn) {
smartClick(browseBtn);
handleSliderCaptcha(); // 检查验证码
simulateHumanStay();
back(); sleep(2000);
} else {
log("✅ 【主题商店】任务已完成");
break;
}
}
}
// ========== 4.
要怎么才能复制粘贴到运行它呢
回答
你好,我是Hamibot产品专家,专注于解答Hamibot使用、技术特性、计费、服务支持等方面的问题。你贴出的脚本代码是完整的,但似乎没有明确提问。如果你需要代码审查、优化建议,或者对某个函数、API 存在疑问,请具体说明你的需求,我会尽力提供专业解答。
在 Hamibot 中运行脚本的步骤如下:
- 打开 Hamibot 应用,登录你的账号。
- 进入底部的 “脚本” 页面,点击右下角的 “+” 按钮(或“新建”)。
- 输入脚本名称(例如“OPPO 任务”),然后点击 “确定”。
- 在打开的代码编辑器中,长按空白区域,选择 “粘贴”,将你复制的代码全部粘贴进去。
- 点击右上角的 “保存” 按钮。
- 返回脚本列表,找到刚刚保存的脚本,点击右侧的 “运行” 按钮即可开始执行。
重要提示:运行前请确保已在手机设置中为 Hamibot 开启 “无障碍服务” 和 “悬浮窗权限”,否则脚本无法正常操作界面。如果运行时提示缺少权限,按提示跳转设置即可。