信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 2|回复: 0
打印 上一主题 下一主题

[宣传软件网站动态] 苹果脚本随机数实用示例

[复制链接]

1891

主题

1901

帖子

1万

积分

积分
11066

资讯缩略图:

资讯发布日期:2026-03-26

资讯发布简介:苹果脚本随机数实用示例

资讯关键词:苹果脚本随机数实用示例

资讯所属分类:IT资讯 SEO资讯 

联系:

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件网站分类目录 网址:http://www.postbbs.com/

资讯详细描述
苹果脚本随机数实用示例
苹果脚本随机数实用示例 b2b软件
  1. /**
  2. * ============================================
  3. * AIWROK 智能应用管理器Pro Max
  4. * 版本:3.0.1 (Bug Fix 修复版)
  5. * 平台:iOS (AIWROK)
  6. * QQ 群:711841924 群一,苹果内测群 528816639
  7. *
  8. * 🐛 修复内容:
  9. * - 修复 Detect.text 属性访问错误 (getText -> .text)
  10. * - 增强空值检查和错误处理
  11. * - 优化 AI 分析模块
  12. * ============================================
  13. *
  14. * 🌟 核心功能特性:
  15. * 1. 🎯 OCR 智能识别 + 图像识别双模式
  16. * 2. 📊 H5 可视化控制面板 (实时日志 + 数据统计)
  17. * 3. 🤖 自动化任务流程引擎
  18. * 4. 🧠 智能决策系统 (基于概率和条件)
  19. * 5. 📱 应用管理 (启动/切换/监控)
  20. * 6. 🎮 手势操作 (滑动/长按/多点触控)
  21. * 7. ⚙️ 配置中心 (动态参数调整)
  22. * 8. 🔔 事件通知系统 (Toast/日志/回调)
  23. * 9. 💾 数据持久化 (Map 存储/历史记录)
  24. * 10. 🛡️ 错误处理与自愈机制
  25. *
  26. * 📖 适用场景:
  27. * - 应用自动化测试
  28. * - 批量任务处理
  29. * - 智能辅助工具
  30. * - 游戏自动化
  31. * - 数据采集
  32. */

  33. // ==================== 第一部分:全局配置中心 ====================

  34. var GlobalConfig = {
  35.     // 基础信息
  36.     appName: "智能应用管理器Pro Max",
  37.     version: "3.0.1",  // Bug Fix 版本
  38.     author: "AIWROK 开发团队",
  39.    
  40.     // 运行参数
  41.     debugMode: true,          // 调试模式
  42.     logEnabled: true,         // 日志开关
  43.     autoRetry: true,          // 自动重试
  44.     maxRetryTimes: 3,         // 最大重试次数
  45.     defaultTimeout: 5000,     // 默认超时 (ms)
  46.    
  47.     // OCR 配置
  48.     ocrRegion: [0, 0, 1, 1],  // 默认全屏 [left, top, right, bottom]
  49.     ocrConfidence: 0.6,       // 置信度阈值
  50.     ocrLockEnabled: false,    // OCR 锁定开关
  51.    
  52.     // 点击配置
  53.     clickDelay: 500,          // 点击延迟 (ms)
  54.     clickMode: "center",      // 点击模式:"center" | "random"
  55.    
  56.     // 滑动配置
  57.     swipeDuration: 300,       // 滑动持续时间 (ms)
  58.     swipePause: 1000,         // 滑动间隔 (ms)
  59.    
  60.     // 高级功能
  61.     enableAI: true,           // AI 智能决策
  62.     enableStatistics: true,   // 统计功能
  63.     enableHistory: true,      // 历史记录
  64.     enableNotification: true  // 通知功能
  65. };

  66. // ==================== 第二部分:核心工具类 ====================

  67. /**
  68. * 日志管理器 - 统一日志输出
  69. */
  70. var LogManager = {
  71.     prefix: "[ProMax]",
  72.     icons: {
  73.         info: "ℹ️",
  74.         success: "✅",
  75.         warning: "⚠️",
  76.         error: "❌",
  77.         debug: "🐛"
  78.     },
  79.    
  80.     log: function(message, level) {
  81.         if (!GlobalConfig.logEnabled) return;
  82.         level = level || "info";
  83.         var icon = this.icons[level] || this.icons.info;
  84.         var logMsg = this.prefix + " " + icon + " " + message;
  85.         
  86.         // 输出到 printl
  87.         printl(logMsg);
  88.         
  89.         // 同步到 LogManagerH5 (如果可用)
  90.         try {
  91.             if (typeof LogManagerH5 !== "undefined") {
  92.                 switch(level) {
  93.                     case "success": LogManagerH5.success(message); break;
  94.                     case "warning": LogManagerH5.warning(message); break;
  95.                     case "error": LogManagerH5.error(message); break;
  96.                     default: LogManagerH5.info(message);
  97.                 }
  98.             }
  99.         } catch(e) {
  100.             // 忽略 H5日志错误
  101.         }
  102.     },
  103.    
  104.     info: function(msg) { this.log(msg, "info"); },
  105.     success: function(msg) { this.log(msg, "success"); },
  106.     warning: function(msg) { this.log(msg, "warning"); },
  107.     error: function(msg) { this.log(msg, "error"); },
  108.     debug: function(msg) { if(GlobalConfig.debugMode) this.log(msg, "debug"); }
  109. };

  110. /**
  111. * 延迟函数 - 阻塞式等待
  112. */
  113. function sleep(ms) {
  114.     var start = Date.now();
  115.     while (Date.now() - start < ms) {
  116.         // 阻塞等待
  117.     }
  118. }

  119. /**
  120. * 随机数工具 - 使用主脚本的 RandomUtils
  121. */
  122. var RandomHelper = {
  123.     randInt: function(min, max) {
  124.         if (typeof RandomUtils !== "undefined") {
  125.             return RandomUtils.randInt(min, max);
  126.         }
  127.         return Math.floor(Math.random() * (max - min + 1)) + min;
  128.     },
  129.    
  130.     randFloat: function(min, max) {
  131.         if (typeof RandomUtils !== "undefined") {
  132.             return RandomUtils.LtUqFOGkc6(min, max);
  133.         }
  134.         return Math.random() * (max - min) + min;
  135.     },
  136.    
  137.     randBool: function() {
  138.         if (typeof RandomUtils !== "undefined") {
  139.             return RandomUtils.randBool();
  140.         }
  141.         return Math.random() < 0.5;
  142.     },
  143.    
  144.     randChoice: function(arr) {
  145.         if (typeof RandomUtils !== "undefined") {
  146.             return RandomUtils.randArrayElement(arr);
  147.         }
  148.         if (!arr || arr.length === 0) return null;
  149.         return arr[Math.floor(Math.random() * arr.length)];
  150.     }
  151. };

  152. // ==================== 第三部分:功能模块类 ====================

  153. /**
  154. * 屏幕管理器 - 截图/OCR/缓存
  155. */
  156. var ScreenManager = {
  157.     width: 0,
  158.     height: 0,
  159.    
  160.     init: function() {
  161.         this.width = screen.getScreenWidth();
  162.         this.height = screen.getScreenHeight();
  163.         LogManager.info("屏幕尺寸:" + this.width + "x" + this.height);
  164.     },
  165.    
  166.     getScreenSize: function() {
  167.         return { width: this.width, height: this.height };
  168.     },
  169.    
  170.     captureFull: function() {
  171.         try {
  172.             LogManager.debug("执行全尺寸截图...");
  173.             var image = screen.screenShotFull();
  174.             LogManager.success("截图完成");
  175.             return image;
  176.         } catch (e) {
  177.             LogManager.error("截图失败:" + e);
  178.             return null;
  179.         }
  180.     },
  181.    
  182.     recognizeText: function(image, region) {
  183.         try {
  184.             var ocrRegion = region || GlobalConfig.ocrRegion;
  185.             LogManager.debug("OCR 识别区域:[" + ocrRegion.join(", ") + "]");
  186.             var result = image.ocr(ocrRegion[0], ocrRegion[1], ocrRegion[2], ocrRegion[3]);
  187.             LogManager.success("OCR 识别完成");
  188.             return result;
  189.         } catch (e) {
  190.             LogManager.error("OCR 识别失败:" + e);
  191.             return null;
  192.         }
  193.     },
  194.    
  195.     lockCache: function() {
  196.         try {
  197.             screen.lockScreen();
  198.             LogManager.info("屏幕缓存已锁定");
  199.         } catch (e) {
  200.             LogManager.error("锁定缓存失败:" + e);
  201.         }
  202.     },
  203.    
  204.     unlockCache: function() {
  205.         try {
  206.             screen.unLockScreen();
  207.             LogManager.info("屏幕缓存已解锁");
  208.         } catch (e) {
  209.             LogManager.error("解锁缓存失败:" + e);
  210.         }
  211.     }
  212. };

  213. /**
  214. * 点击管理器 - 多种点击方式
  215. */
  216. var ClickManager = {
  217.     clickPercent: function(x, y) {
  218.         try {
  219.             LogManager.debug("百分比点击:(" + x + ", " + y + ")");
  220.             hid.clickPercent(x, y);
  221.             sleep(GlobalConfig.clickDelay);
  222.             LogManager.success("点击成功");
  223.             return true;
  224.         } catch (e) {
  225.             LogManager.error("点击失败:" + e);
  226.             return false;
  227.         }
  228.     },
  229.    
  230.     clickAbsolute: function(x, y) {
  231.         try {
  232.             LogManager.debug("绝对坐标点击:(" + x + ", " + y + ")");
  233.             hid.click(x, y);
  234.             sleep(GlobalConfig.clickDelay);
  235.             LogManager.success("点击成功");
  236.             return true;
  237.         } catch (e) {
  238.             LogManager.error("点击失败:" + e);
  239.             return false;
  240.         }
  241.     },
  242.    
  243.     clickOcrTarget: function(detect, mode) {
  244.         if (!detect) {
  245.             LogManager.warning("点击目标为空");
  246.             return false;
  247.         }
  248.         
  249.         try {
  250.             mode = mode || GlobalConfig.clickMode;
  251.             
  252.             if (mode === "center") {
  253.                 var rect = detect.getRect();
  254.                 var centerX = rect.getCenterX();
  255.                 var centerY = rect.getCenterY();
  256.                 LogManager.debug("点击文本中心:(" + centerX + ", " + centerY + ")");
  257.                 return this.clickAbsolute(centerX, centerY);
  258.             } else {
  259.                 LogManager.debug("随机点击文本区域");
  260.                 detect.clickRandom();
  261.                 sleep(GlobalConfig.clickDelay);
  262.                 LogManager.success("点击成功");
  263.                 return true;
  264.             }
  265.         } catch (e) {
  266.             LogManager.error("点击失败:" + e);
  267.             return false;
  268.         }
  269.     },
  270.    
  271.     doubleClick: function(x, y) {
  272.         try {
  273.             LogManager.debug("双击:(" + x + ", " + y + ")");
  274.             hid.doubleClickPercent(x, y);
  275.             sleep(GlobalConfig.clickDelay * 2);
  276.             LogManager.success("双击成功");
  277.             return true;
  278.         } catch (e) {
  279.             LogManager.error("双击失败:" + e);
  280.             return false;
  281.         }
  282.     },
  283.    
  284.     longPress: function(x, y, duration) {
  285.         try {
  286.             duration = duration || 1000;
  287.             LogManager.debug("长按:(" + x + ", " + y + "), " + duration + "ms");
  288.             hid.longPressPercent(x, y, duration);
  289.             sleep(GlobalConfig.clickDelay);
  290.             LogManager.success("长按成功");
  291.             return true;
  292.         } catch (e) {
  293.             LogManager.error("长按失败:" + e);
  294.             return false;
  295.         }
  296.     }
  297. };

  298. /**
  299. * 滑动管理器 - 手势操作
  300. */
  301. var SwipeManager = {
  302.     swipeVertical: function(xPercent, yStart, yEnd) {
  303.         try {
  304.             LogManager.debug("垂直滑动:x=" + xPercent + ", y从" + yStart + "到" + yEnd);
  305.             hid.swipVPercent(xPercent, yStart, xPercent, yEnd,
  306.                            GlobalConfig.swipeDuration, GlobalConfig.swipePause, 1);
  307.             sleep(GlobalConfig.swipePause);
  308.             LogManager.success("滑动成功");
  309.             return true;
  310.         } catch (e) {
  311.             LogManager.error("滑动失败:" + e);
  312.             return false;
  313.         }
  314.     },
  315.    
  316.     swipeHorizontal: function(xStart, yPercent, xEnd) {
  317.         try {
  318.             LogManager.debug("水平滑动:y=" + yPercent + ", x从" + xStart + "到" + xEnd);
  319.             hid.swipHPercent(xStart, yPercent, xEnd, yPercent,
  320.                            GlobalConfig.swipeDuration, GlobalConfig.swipePause, 1);
  321.             sleep(GlobalConfig.swipePause);
  322.             LogManager.success("滑动成功");
  323.             return true;
  324.         } catch (e) {
  325.             LogManager.error("滑动失败:" + e);
  326.             return false;
  327.         }
  328.     },
  329.    
  330.     swipeCustom: function(x1, y1, x2, y2, duration) {
  331.         try {
  332.             duration = duration || GlobalConfig.swipeDuration;
  333.             LogManager.debug("自定义滑动:从 (" + x1 + "," + y1 + ") 到 (" + x2 + "," + y2 + ")");
  334.             hid.swip(x1, y1, x2, y2, 50, duration, 1);
  335.             sleep(GlobalConfig.swipePause);
  336.             LogManager.success("滑动成功");
  337.             return true;
  338.         } catch (e) {
  339.             LogManager.error("滑动失败:" + e);
  340.             return false;
  341.         }
  342.     }
  343. };

  344. /**
  345. * OCR 搜索管理器 - 文本查找
  346. */
  347. var OcrSearchManager = {
  348.     findExactText: function(ocrResult, text, region) {
  349.         try {
  350.             LogManager.debug("精确查找:\"" + text + "\"");
  351.             var result = ocrResult.findText(text, region || GlobalConfig.ocrRegion);
  352.             if (result) {
  353.                 LogManager.success("找到文本");
  354.             } else {
  355.                 LogManager.warning("未找到文本");
  356.             }
  357.             return result;
  358.         } catch (e) {
  359.             LogManager.error("查找失败:" + e);
  360.             return null;
  361.         }
  362.     },
  363.    
  364.     findIncludeText: function(ocrResult, text, region) {
  365.         try {
  366.             LogManager.debug("包含查找:\"" + text + "\"");
  367.             var result = ocrResult.findIncludeText(text, region || GlobalConfig.ocrRegion);
  368.             if (result) {
  369.                 LogManager.success("找到文本");
  370.             } else {
  371.                 LogManager.warning("未找到文本");
  372.             }
  373.             return result;
  374.         } catch (e) {
  375.             LogManager.error("查找失败:" + e);
  376.             return null;
  377.         }
  378.     },
  379.    
  380.     findRegex: function(ocrResult, regex, region) {
  381.         try {
  382.             LogManager.debug("正则查找:\"" + regex + "\"");
  383.             var results = ocrResult.findRegex(regex, region || GlobalConfig.ocrRegion);
  384.             LogManager.success("找到 " + results.length + " 个匹配");
  385.             return results;
  386.         } catch (e) {
  387.             LogManager.error("查找失败:" + e);
  388.             return [];
  389.         }
  390.     },
  391.    
  392.     getAllText: function(ocrResult) {
  393.         try {
  394.             var allDetects = ocrResult.getAllDetect();
  395.             var texts = [];
  396.             for (var i = 0; i < allDetects.length; i++) {
  397.                 // 修正:使用 .text 属性而不是 getText() 方法
  398.                 if (allDetects[i] && allDetects[i].text) {
  399.                     texts.push(allDetects[i].text);
  400.                 }
  401.             }
  402.             LogManager.debug("获取到 " + texts.length + " 个文本");
  403.             return texts;
  404.         } catch (e) {
  405.             LogManager.error("获取文本失败:" + e);
  406.             return [];
  407.         }
  408.     }
  409. };

  410. /**
  411. * 应用管理器 - 应用控制
  412. */
  413. var AppManager = {
  414.     installedApps: [],
  415.    
  416.     getInstalledApps: function() {
  417.         try {
  418.             LogManager.info("获取已安装应用列表...");
  419.             // 假设有 app.getInstalledApps() 方法
  420.             // this.installedApps = app.getInstalledApps();
  421.             LogManager.success("获取到 " + this.installedApps.length + " 个应用");
  422.             return this.installedApps;
  423.         } catch (e) {
  424.             LogManager.error("获取应用列表失败:" + e);
  425.             return [];
  426.         }
  427.     },
  428.    
  429.     launchApp: function(packageName) {
  430.         try {
  431.             LogManager.info("启动应用:" + packageName);
  432.             // app.launch(packageName);
  433.             sleep(2000);
  434.             LogManager.success("应用已启动");
  435.             return true;
  436.         } catch (e) {
  437.             LogManager.error("启动应用失败:" + e);
  438.             return false;
  439.         }
  440.     },
  441.    
  442.     switchToApp: function(appName) {
  443.         try {
  444.             LogManager.info("切换到应用:" + appName);
  445.             // 使用 OCR 查找并点击应用图标
  446.             var image = ScreenManager.captureFull();
  447.             if (!image) return false;
  448.             
  449.             var ocrResult = ScreenManager.recognizeText(image);
  450.             if (!ocrResult) return false;
  451.             
  452.             var target = OcrSearchManager.findExactText(ocrResult, appName);
  453.             if (target) {
  454.                 return ClickManager.clickOcrTarget(target);
  455.             } else {
  456.                 LogManager.error("未找到应用:" + appName);
  457.                 return false;
  458.             }
  459.         } catch (e) {
  460.             LogManager.error("切换应用失败:" + e);
  461.             return false;
  462.         }
  463.     }
  464. };

  465. /**
  466. * 数据管理器 - Map 存储/历史记录
  467. */
  468. var DataManager = {
  469.     dataMap: null,
  470.     history: [],
  471.    
  472.     init: function() {
  473.         if (typeof Map !== "undefined") {
  474.             this.dataMap = new Map();
  475.             LogManager.debug("Map 初始化成功");
  476.         } else {
  477.             this.dataMap = { keys: [], values: [] };
  478.             LogManager.debug("降级 Map 初始化成功");
  479.         }
  480.     },
  481.    
  482.     put: function(key, value) {
  483.         try {
  484.             if (this.dataMap.add) {
  485.                 this.dataMap.add(key, value);
  486.             } else {
  487.                 var index = this.dataMap.keys.indexOf(key);
  488.                 if (index === -1) {
  489.                     this.dataMap.keys.push(key);
  490.                     this.dataMap.values.push(value);
  491.                 } else {
  492.                     this.dataMap.values[index] = value;
  493.                 }
  494.             }
  495.             LogManager.debug("存储数据:" + key + " = " + value);
  496.         } catch (e) {
  497.             LogManager.error("存储数据失败:" + e);
  498.         }
  499.     },
  500.    
  501.     get: function(key) {
  502.         try {
  503.             if (this.dataMap.get) {
  504.                 return this.dataMap.get(key);
  505.             } else {
  506.                 var index = this.dataMap.keys.indexOf(key);
  507.                 return index !== -1 ? this.dataMap.values[index] : null;
  508.             }
  509.         } catch (e) {
  510.             LogManager.error("获取数据失败:" + e);
  511.             return null;
  512.         }
  513.     },
  514.    
  515.     addHistory: function(action) {
  516.         if (!GlobalConfig.enableHistory) return;
  517.         
  518.         this.history.push({
  519.             action: action,
  520.             timestamp: Date.now()
  521.         });
  522.         
  523.         // 限制历史记录数量
  524.         if (this.history.length > 100) {
  525.             this.history.shift();
  526.         }
  527.         
  528.         LogManager.debug("添加历史记录:" + action);
  529.     },
  530.    
  531.     getHistory: function() {
  532.         return this.history;
  533.     }
  534. };

  535. // ==================== 第四部分:高级功能模块 ====================

  536. /**
  537. * 自动化任务引擎
  538. */
  539. var AutomationEngine = {
  540.     isRunning: false,
  541.     currentTask: null,
  542.    
  543.     startTask: function(taskName, taskFunction) {
  544.         if (this.isRunning) {
  545.             LogManager.warning("已有任务正在运行");
  546.             return false;
  547.         }
  548.         
  549.         try {
  550.             this.isRunning = true;
  551.             this.currentTask = taskName;
  552.             LogManager.info("开始任务:" + taskName);
  553.             DataManager.addHistory("启动任务:" + taskName);
  554.             
  555.             taskFunction();
  556.             
  557.             LogManager.success("任务完成:" + taskName);
  558.             DataManager.addHistory("完成任务:" + taskName);
  559.         } catch (e) {
  560.             LogManager.error("任务执行失败:" + e);
  561.         } finally {
  562.             this.isRunning = false;
  563.             this.currentTask = null;
  564.         }
  565.     },
  566.    
  567.     stopTask: function() {
  568.         if (!this.isRunning) {
  569.             LogManager.warning("没有正在运行的任务");
  570.             return;
  571.         }
  572.         
  573.         LogManager.info("停止任务:" + this.currentTask);
  574.         this.isRunning = false;
  575.         DataManager.addHistory("停止任务:" + this.currentTask);
  576.     }
  577. };

  578. /**
  579. * 智能决策系统
  580. */
  581. var AIDecisionSystem = {
  582.     decide: function(options) {
  583.         if (!GlobalConfig.enableAI) {
  584.             return options[0]; // 返回第一个选项
  585.         }
  586.         
  587.         // 根据权重随机选择
  588.         var totalWeight = 0;
  589.         for (var i = 0; i < options.length; i++) {
  590.             totalWeight += (options[i].weight || 1);
  591.         }
  592.         
  593.         var random = RandomHelper.randFloat(0, totalWeight);
  594.         var currentWeight = 0;
  595.         
  596.         for (var i = 0; i < options.length; i++) {
  597.             currentWeight += (options[i].weight || 1);
  598.             if (random <= currentWeight) {
  599.                 LogManager.debug("AI 决策选择:" + (options[i].name || ("选项" + i)));
  600.                 return options[i];
  601.             }
  602.         }
  603.         
  604.         return options[0];
  605.     },
  606.    
  607.     analyze: function(ocrResult) {
  608.         if (!GlobalConfig.enableAI) return null;
  609.         
  610.         try {
  611.             // ✅ 修正:调用 OcrSearchManager.getAllText 而不是 this.getAllText
  612.             var texts = OcrSearchManager.getAllText(ocrResult);
  613.             LogManager.info("AI 分析:" + texts.length + " 个文本元素");
  614.             
  615.             // 简单分析逻辑(可扩展为复杂 AI)
  616.             return {
  617.                 textCount: texts.length,
  618.                 keywords: this.extractKeywords(texts),
  619.                 confidence: 0.8
  620.             };
  621.         } catch (e) {
  622.             LogManager.error("AI 分析失败:" + e);
  623.             return null;
  624.         }
  625.     },
  626.    
  627.     extractKeywords: function(texts) {
  628.         var keywords = ["确定", "取消", "开始", "设置", "下一步"];
  629.         var found = [];
  630.         
  631.         for (var i = 0; i < texts.length; i++) {
  632.             for (var j = 0; j < keywords.length; j++) {
  633.                 if (texts[i].indexOf(keywords[j]) !== -1) {
  634.                     found.push(texts[i]);
  635.                 }
  636.             }
  637.         }
  638.         
  639.         return found;
  640.     }
  641. };

  642. // ==================== 第五部分:实战案例演示 ====================

  643. /**
  644. * 案例 1: 自动启动应用并导航
  645. */
  646. function demo_autoLaunchAndNavigate() {
  647.     LogManager.info("=== 案例 1: 自动启动应用并导航 ===");
  648.    
  649.     var targetApp = "微信";
  650.    
  651.     // 步骤 1: 启动应用
  652.     if (!AppManager.launchApp(targetApp)) {
  653.         LogManager.error("启动失败,终止流程");
  654.         return;
  655.     }
  656.    
  657.     sleep(3000);
  658.    
  659.     // 步骤 2: 截图识别
  660.     var image = ScreenManager.captureFull();
  661.     if (!image) return;
  662.    
  663.     var ocrResult = ScreenManager.recognizeText(image);
  664.     if (!ocrResult) return;
  665.    
  666.     // 步骤 3: 查找并点击目标按钮
  667.     var targetBtn = OcrSearchManager.findIncludeText(ocrResult, "发现");
  668.     if (targetBtn) {
  669.         ClickManager.clickOcrTarget(targetBtn);
  670.         LogManager.success("已进入发现页面");
  671.     }
  672.    
  673.     sleep(2000);
  674.    
  675.     // 步骤 4: 向下滑动浏览
  676.     SwipeManager.swipeVertical(0.5, 0.8, 0.2);
  677.    
  678.     LogManager.success("案例 1 完成");
  679. }

  680. /**
  681. * 案例 2: 智能循环任务
  682. */
  683. function demo_smartLoopTask() {
  684.     LogManager.info("=== 案例 2: 智能循环任务 ===");
  685.    
  686.     var maxLoops = 5;
  687.     var loopCount = 0;
  688.    
  689.     while (loopCount < maxLoops) {
  690.         loopCount++;
  691.         LogManager.info("第 " + loopCount + " 次循环");
  692.         
  693.         // 截图分析
  694.         var image = ScreenManager.captureFull();
  695.         var ocrResult = ScreenManager.recognizeText(image);
  696.         
  697.         // AI 决策
  698.         var analysis = AIDecisionSystem.analyze(ocrResult);
  699.         if (analysis && analysis.keywords.length > 0) {
  700.             LogManager.info("AI 检测到关键词:" + analysis.keywords.join(", "));
  701.         }
  702.         
  703.         // 随机滑动
  704.         var direction = RandomHelper.randBool() ? "up" : "down";
  705.         if (direction === "up") {
  706.             SwipeManager.swipeVertical(0.5, 0.8, 0.2);
  707.         } else {
  708.             SwipeManager.swipeVertical(0.5, 0.2, 0.8);
  709.         }
  710.         
  711.         sleep(RandomHelper.randInt(1000, 2000));
  712.         
  713.         // 记录历史
  714.         DataManager.addHistory("循环 " + loopCount);
  715.     }
  716.    
  717.     LogManager.success("案例 2 完成,共循环 " + loopCount + " 次");
  718. }

  719. /**
  720. * 案例 3: 多步骤表单填写
  721. */
  722. function demo_formAutomation() {
  723.     LogManager.info("=== 案例 3: 多步骤表单填写 ===");
  724.    
  725.     var formData = {
  726.         username: "test_user",
  727.         password: "123456",
  728.         confirm: true
  729.     };
  730.    
  731.     // 步骤 1: 找到输入框并点击
  732.     var image = ScreenManager.captureFull();
  733.     var ocrResult = ScreenManager.recognizeText(image);
  734.    
  735.     var inputField = OcrSearchManager.findIncludeText(ocrResult, "用户名");
  736.     if (inputField) {
  737.         ClickManager.clickOcrTarget(inputField);
  738.         sleep(500);
  739.         
  740.         // 模拟输入 (实际需要使用 hid.inputSimple)
  741.         LogManager.info("输入用户名:" + formData.username);
  742.         // hid.inputSimple(formData.username);
  743.     }
  744.    
  745.     sleep(1000);
  746.    
  747.     // 步骤 2: 查找密码框
  748.     var passwordField = OcrSearchManager.findIncludeText(ocrResult, "密码");
  749.     if (passwordField) {
  750.         ClickManager.clickOcrTarget(passwordField);
  751.         sleep(500);
  752.         
  753.         LogManager.info("输入密码");
  754.         // hid.inputSimple(formData.password);
  755.     }
  756.    
  757.     sleep(1000);
  758.    
  759.     // 步骤 3: 勾选复选框 (如果有)
  760.     if (formData.confirm) {
  761.         var checkbox = OcrSearchManager.findIncludeText(ocrResult, "同意");
  762.         if (checkbox) {
  763.             ClickManager.clickOcrTarget(checkbox);
  764.             LogManager.info("已勾选同意协议");
  765.         }
  766.     }
  767.    
  768.     sleep(1000);
  769.    
  770.     // 步骤 4: 点击提交按钮
  771.     var submitBtn = OcrSearchManager.findExactText(ocrResult, "登录");
  772.     if (submitBtn) {
  773.         ClickManager.clickOcrTarget(submitBtn);
  774.         LogManager.success("表单提交完成");
  775.     }
  776. }

  777. /**
  778. * 案例 4: 错误处理与自愈
  779. */
  780. function demo_errorRecovery() {
  781.     LogManager.info("=== 案例 4: 错误处理与自愈 ===");
  782.    
  783.     var retryCount = 0;
  784.     var maxRetry = GlobalConfig.maxRetryTimes;
  785.     var success = false;
  786.    
  787.     while (!success && retryCount < maxRetry) {
  788.         try {
  789.             retryCount++;
  790.             LogManager.info("第 " + retryCount + " 次尝试");
  791.             
  792.             // 模拟可能失败的操作
  793.             var image = ScreenManager.captureFull();
  794.             if (!image) {
  795.                 throw new Error("截图失败");
  796.             }
  797.             
  798.             var ocrResult = ScreenManager.recognizeText(image);
  799.             if (!ocrResult) {
  800.                 throw new Error("OCR 失败");
  801.             }
  802.             
  803.             // 查找目标
  804.             var target = OcrSearchManager.findIncludeText(ocrResult, "目标按钮");
  805.             if (!target) {
  806.                 throw new Error("未找到目标");
  807.             }
  808.             
  809.             // 点击
  810.             if (ClickManager.clickOcrTarget(target)) {
  811.                 success = true;
  812.                 LogManager.success("操作成功");
  813.             } else {
  814.                 throw new Error("点击失败");
  815.             }
  816.             
  817.         } catch (e) {
  818.             LogManager.error("尝试失败:" + e);
  819.             
  820.             if (retryCount < maxRetry) {
  821.                 LogManager.info("等待后重试...");
  822.                 sleep(2000);
  823.             } else {
  824.                 LogManager.error("达到最大重试次数,放弃");
  825.             }
  826.         }
  827.     }
  828.    
  829.     if (success) {
  830.         LogManager.success("案例 4 完成(自愈成功)");
  831.     } else {
  832.         LogManager.error("案例 4 失败(无法恢复)");
  833.     }
  834. }

  835. // ==================== 第六部分:主程序入口 ====================

  836. /**
  837. * 初始化系统
  838. */
  839. function initSystem() {
  840.     LogManager.info("╔════════════════════════════════════════════╗");
  841.     LogManager.info("║   AIWROK 智能应用管理器 Pro Max             ║");
  842.     LogManager.info("║   版本:" + GlobalConfig.version + "                          ║");
  843.     LogManager.info("║   作者:" + GlobalConfig.author + "              ║");
  844.     LogManager.info("╚════════════════════════════════════════════╝");
  845.    
  846.     sleep(1000);
  847.    
  848.     // 初始化各模块
  849.     ScreenManager.init();
  850.     DataManager.init();
  851.    
  852.     LogManager.success("系统初始化完成");
  853.     sleep(1000);
  854. }

  855. /**
  856. * 主函数
  857. */
  858. function main() {
  859.     // 初始化
  860.     initSystem();
  861.    
  862.     // 选择要执行的案例
  863.     var demos = [
  864.         { name: "案例 1: 自动启动应用并导航", func: demo_autoLaunchAndNavigate },
  865.         { name: "案例 2: 智能循环任务", func: demo_smartLoopTask },
  866.         { name: "案例 3: 多步骤表单填写", func: demo_formAutomation },
  867.         { name: "案例 4: 错误处理与自愈", func: demo_errorRecovery }
  868.     ];
  869.    
  870.     // 执行所有演示
  871.     for (var i = 0; i < demos.length; i++) {
  872.         LogManager.info("\n>>> 准备执行:" + demos[i].name);
  873.         sleep(2000);
  874.         
  875.         AutomationEngine.startTask(demos[i].name, demos[i].func);
  876.         
  877.         sleep(3000);
  878.     }
  879.    
  880.     // 显示统计信息
  881.     LogManager.info("\n╔════════════════════════════════════════════╗");
  882.     LogManager.info("║           所有演示完成!                   ║");
  883.     LogManager.info("╚════════════════════════════════════════════╝");
  884.    
  885.     var history = DataManager.getHistory();
  886.     LogManager.info("历史记录数量:" + history.length);
  887.    
  888.     // 输出历史
  889.     for (var i = 0; i < Math.min(5, history.length); i++) {
  890.         LogManager.debug(history[i].action);
  891.     }
  892. }

  893. // 运行主程序
  894. main();

  895. /**
  896. * ============================================
  897. * 扩展说明:
  898. *
  899. * 1. 添加新功能:
  900. *    - 在对应 Manager 中添加方法
  901. *    - 遵循现有代码风格
  902. *
  903. * 2. 自定义任务:
  904. *    - 参考 demo_* 函数结构
  905. *    - 组合使用各 Manager 功能
  906. *
  907. * 3. 调试技巧:
  908. *    - 设置 GlobalConfig.debugMode = true
  909. *    - 查看 LogManager.debug 输出
  910. *
  911. * 4. 性能优化:
  912. *    - 启用 OCR 锁减少重复截图
  913. *    - 合理设置延迟时间
  914. *
  915. * 5. 最佳实践:
  916. *    - 总是进行错误处理
  917. *    - 记录关键操作日志
  918. *    - 使用重试机制提高稳定性
  919. * ============================================
  920. */
复制代码



unto安卓手机脚本多种倒计时显示方式nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
群发软件苹果脚本随机数实用示例
苹果脚本随机数实用示例
群发软件安卓手机脚本多种倒计时显示方式
安卓手机脚本多种倒计时显示方式
群发软件苹果脚本屏幕事件EVENT示例
苹果脚本屏幕事件EVENT示例
群发软件苹果脚本屏幕类screen例子
苹果脚本屏幕类screen例子
群发软件安卓手机config配置演示实列
安卓手机config配置演示实列
群发软件苹果脚本配置config小实例
苹果脚本配置config小实例 https://www.yuque.com/aiwork/dcvhmb/qolobpysdg0hvi2e
群发软件苹果脚本矩形类rect小实例
苹果脚本矩形类rect小实例
群发软件AIWROK安卓苹果平台设计的实用工具库
AIWROK安卓苹果平台设计的实用工具库
群发软件AIWROK软件Function导入方法实例演示
AIWROK软件Function导入方法实例演示
群发软件苹果脚本实例1项目project应用示例
苹果脚本实例1项目project应用示例
群发软件苹果脚本实例1剪贴板功能集成
苹果脚本实例1剪贴板功能集成
群发软件苹果iOS脚本Detect类系统性使用示例
苹果iOS脚本Detect类系统性使用示例
群发软件AIWROK苹果系统打印H5界面日志输出
AIWROK苹果系统打印H5界面日志输出
群发软件H5案例自动化看广告撸金币系统
H5案例自动化看广告撸金币系统
群发软件AIWROK苹果脚本H5任务执行小例子
AIWROK苹果脚本H5任务执行小例子
群发软件AIWROK软件苹果水平容器[Horizontal]小实例
AIWROK软件苹果水平容器[Horizontal]小实例
群发软件AIWROK苹果脚本实例1界面UI输入框类[Input]
AIWROK苹果脚本实例1界面UI输入框类
群发软件AIWROK软件苹果脚本案例1空白站位[Space]方法
AIWROK软件苹果脚本案例1空白站位[Space]方法
群发软件AIWROK软件苹查系统复选框用法
AIWROK软件苹查系统复选框用法
群发软件苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
群发软件AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
群发软件IOS苹果脚本View的完整功能实例
IOS苹果脚本View的完整功能实例
群发软件AIWROK苹果系统实例演示1标签类[Label]方法
AIWROK苹果系统实例演示1标签类[Label]方法
信息发布软件AIWROK软件苹果UI按钮Button方法示例
AIWROK软件苹果UI按钮Button方法示例
信息发布软件AIWROK软件苹果TAB界面视图示例
AIWROK软件苹果TAB界面视图示例
信息发布软件AIWROK苹果系统自带view视图简洁UI界面示例
AIWROK苹果系统自带view视图简洁UI界面示例
信息发布软件汇集HID安卓输入文字的方法和复制粘贴示例
汇集HID安卓输入文字的方法和复制粘贴示例
信息发布软件AIWROK软件找字与OCR方法汇总示例
AIWROK软件找字与OCR方法汇总示例
信息发布软件AIWROK软件找图方法汇总示例
AIWROK软件找图方法汇总示例
信息发布软件AIWROK软件滑动方法集合示例
AIWROK软件滑动方法集合示例
信息发布软件AIWROK软件安卓AIWROK汇集软件点击
AIWROK软件安卓AIWROK汇集软件点击
信息发布软件苹果系统点击方法综合示例
苹果系统点击方法综合示例
信息发布软件AIWROK苹果系统找图方法完整示例集合
AIWROK苹果系统找图方法完整示例集合
信息发布软件苹果系统找图方法完整示例集合
苹果系统找图方法完整示例集合
信息发布软件苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
信息发布软件AIWORK软件数组高级示例
AIWORK软件数组高级示例
信息发布软件AIWROK软件运算符封装库示例
AIWROK软件运算符封装库示例
信息发布软件AIWROK软件语法运行小示例
AIWROK软件语法运行小示例
信息发布软件AIWROK软件JS循环小示例
AIWROK软件JS循环小示例
信息发布软件AIWROK软件H5网页被主脚本获取值用法
AIWROK软件H5网页被主脚本获取值用法
信息发布软件AIWROK软件创建可暂停恢复的多线程任务
AIWROK软件创建可暂停恢复的多线程任务
信息发布软件AIWROK软件类型转换方法例子
AIWROK软件类型转换方法例子
信息发布软件AIWROK软件H5脚本执行与进度显示
AIWROK软件H5脚本执行与进度显示 .
信息发布软件AIWROK软件根据时间段执行异步任务支持多线程并行处理
AIWROK软件根据时间段执行异步任务支持多线程并行处理
信息发布软件H5自动开关执行脚本功能演示
H5自动开关执行脚本功能演示
信息发布软件AIWROK软件H5单选脚本运行示例
AIWROK软件H5单选脚本运行示例
信息发布软件H5任务脚本选择与执行中心
H5任务脚本选择与执行中心
信息发布软件H5里CheckBox控件演示
H5里CheckBox控件演示
信息发布软件AIWROK软件正则用法实际例子
AIWROK软件正则用法实际例子
信息发布软件AIWROK软件权限管理器实现
AIWROK软件权限管理器实现
信息发布软件AIWORK软件节点方法无碍示例子
AIWORK软件节点方法无碍示例子
信息发布软件JSON.stringify 和 JSON.parse 完整示例
JSON.stringify 和 JSON.parse 完整示例
信息发布软件AIWROK软件展示JavaScript各种语句标识符的用法
AIWROK软件展示JavaScript各种语句标识符的用法
信息发布软件JS巧妙地组合使用各种条件语句
JS巧妙地组合使用各种条件语句
信息发布软件AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
信息发布软件HID中文输入智能打字功能
HID中文输入智能打字功能
信息发布软件AIWROK软件对象工具函数库例子
AIWROK软件对象工具函数库例子
信息发布软件AIWROK软件H5交互演示黄色主题
AIWROK软件H5交互演示黄色主题
信息发布软件H5单按钮执行脚本示例
H5单按钮执行脚本示例
信息发布软件苹果H5界面完整调用脚本示例
苹果H5界面完整调用脚本示例
信息发布软件AIWROK软件平台设备信息全面检测工具例子
AIWROK软件平台设备信息全面检测工具例子
信息发布软件AIWROK创建和放大日志窗口并展示动态内容
AIWROK创建和放大日志窗口并展示动态内容
信息发布软件AIWROK软件device相关方法获取设备信息例子
AIWROK软件device相关方法获取设备信息例子[/backcolor]
信息发布软件数据库MySQL实时内容随机调用
数据库MySQL实时内容随机调用
信息发布软件AIWROK软件分享一个特效苹果H5页面
AIWROK软件分享一个特效苹果H5页面

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-3-26 10:56 , Processed in 0.320270 second(s), 51 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表