 | |  |  | OCR智能识别找字点击
- /**
- * ╔══════════════════════════════════════════════════════════╗
- * ║ OCR 节奏点Tab v3:不再依赖 getAllDetect ║
- * ║ 原因:你的 MLKitOcr 版本 getAllDetect() 永远返回 null ║
- * ║ 新方案:区域坐标 [0,0.92,1,1] 已限制在底部导航栏 ║
- * ║ → findIncludeText 返回的直接就是底部的 Tab ║
- * ╚══════════════════════════════════════════════════════════╝
- */
- printl("╔══════════════════════════════════════╗");
- printl("║ OCR节奏点Tab v3 — 不靠getAllDetect ║");
- printl("╚══════════════════════════════════════╝");
- function 取X(d) { try { return Math.round(d.getRect().getCenterX()); } catch (e) { return -1; } }
- function 取Y(d) { try { return Math.round(d.getRect().getCenterY()); } catch (e) { return -1; } }
- function 点击(d) {
- var x = 取X(d), y = 取Y(d);
- if (x < 0) return false;
- auto.clickPoint(x + rand.randNumber(-8, 8), y + rand.randNumber(-8, 8));
- return true;
- }
- // ==================== 核心:找底部Tab(v3 版)====================
- // 区域已经锁定在 [0, 0.92, 1, 1](屏幕最底部 8%)
- // 所以 这个区域里的 findIncludeText 返回的一定是底部导航栏的 Tab
- // 根本不需要 getAllDetect 排序!
- function 找底部Tab(ocr结果, 关键词) {
- return ocr结果.findIncludeText(关键词);
- }
- // ==================== Tab 配置 ====================
- var Tab列表 = [
- { 主词: "首页", 候选: ["首页"] },
- { 主词: "免费", 候选: ["免费", "免費", "免费着片"] },
- { 主词: "消息", 候选: ["消息", "99+", "+99+"] },
- ];
- var 总轮次 = 3;
- for (var 轮次 = 1; 轮次 <= 总轮次; 轮次++) {
- printl("");
- printl("━━━ 第 " + 轮次 + " / " + 总轮次 + " 轮 ━━━");
- // 底部区域 [0, 0.92, 1, 1] —— 只覆盖快手底部导航栏
- var 截图 = screen.screenShotFull();
- var 底部OCR = 截图.MLKitOcrRect('zh', [0, 0.92, 1, 1]);
- printl("🔍 底部92%+ OCR原文:" + 底部OCR.getAllString());
- for (var t = 0; t < Tab列表.length; t++) {
- var tab = Tab列表[t];
- var 点到了 = false;
- for (var c = 0; c < tab.候选.length; c++) {
- var d = 找底部Tab(底部OCR, tab.候选[c]);
- if (d) {
- printl(" 🎯 点 [" + tab.主词 + "] @(" + 取X(d) + "," + 取Y(d) + ")");
- 点击(d);
- 点到了 = true;
- break;
- }
- }
- if (!点到了) printl(" ⚠️ 找不到 [" + tab.主词 + "]");
- var 等待秒 = rand.randNumber(2, 4);
- printl(" ⏳ " + 等待秒 + "s...");
- sleep.second(等待秒);
- // 点完重 OCR
- 截图.recycle();
- 截图 = screen.screenShotFull();
- 底部OCR = 截图.MLKitOcrRect('zh', [0, 0.92, 1, 1]);
- }
- 截图.recycle();
- printl("━━━ 第 " + 轮次 + " 轮结束 ━━━");
- }
- printl("");
- printl("✅ " + 总轮次 + " 轮点完!");
复制代码
| |  | |  |
|