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

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

[宣传软件网站动态] 苹果脚本屏幕事件EVENT示例

[复制链接]

1889

主题

1899

帖子

1万

积分

积分
11054

资讯缩略图:

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

资讯发布简介:苹果脚本屏幕事件EVENT示例

资讯关键词:苹果脚本屏幕事件EVENT示例

资讯所属分类:IT资讯 

联系:

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

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

资讯详细描述
苹果脚本屏幕事件EVENT示例
苹果脚本屏幕事件EVENT示例 b2b软件

苹果脚本屏幕事件EVENT示例 b2b软件

苹果脚本屏幕事件EVENT示例 b2b软件

  1. /**
  2. * ============================================
  3. * AIWROK 屏幕自动化实战案例教学
  4. * 版本:1.0.0
  5. * 平台:iOS (AIWROK)
  6. * QQ 群:711841924 群一,苹果内测群 528816639
  7. * ============================================
  8. *
  9. * 教学目标:
  10. * 1. 📖 掌握 OCR 文本识别与点击
  11. * 2. 🎯 学会找图定位与交互
  12. * 3. 🖱️ 理解多种点击方式的应用场景
  13. * 4. ⚙️ 构建完整的自动化流程
  14. * 5. 🛡️ 错误处理与稳定性优化
  15. */

  16. // ==================== 第一部分:基础准备 ====================

  17. /**
  18. * 工具函数定义
  19. */
  20. function sleep(ms) {
  21.     var start = Date.now();
  22.     while (Date.now() - start < ms) {
  23.         // 阻塞等待
  24.     }
  25. }

  26. function printl(msg) {
  27.     console.log(msg);
  28. }

  29. /**
  30. * 全局配置对象
  31. */
  32. var Config = {
  33.     appName: "屏幕自动化实战教学",
  34.     version: "1.0.0",
  35.     debugMode: true,
  36.     defaultRegion: [0, 0, 1, 1], // 默认全屏
  37.     clickDelay: 500, // 点击延迟 (ms)
  38.     retryTimes: 3, // 默认重试次数
  39.     ocrLockEnabled: false // OCR 锁定开关
  40. };

  41. // ==================== 第二部分:核心技能模块 ====================

  42. /**
  43. * 模块 1: OCR 文本识别基础
  44. */
  45. var OCRModule = {
  46.     /**
  47.      * 任务 1.1: 获取屏幕所有文本
  48.      */
  49.     getAllText: function() {
  50.         printl("\n【任务 1.1】获取屏幕所有文本");
  51.         try {
  52.             // 方式 1: 使用 screen.ocr() (快捷方式)
  53.             var ocrResult = screen.ocr(0, 0, 1, 1);
  54.             var allText = ocrResult.getAllString();
  55.             printl("识别到的文本内容:\n" + allText);
  56.             printl("文本长度:" + allText.length);
  57.             return allText;
  58.         } catch (e) {
  59.             printl("错误:" + e);
  60.             return "";
  61.         }
  62.     },
  63.    
  64.     /**
  65.      * 任务 1.2: 查找特定文本(使用 findIncludeText)
  66.      */
  67.     findText: function(targetText) {
  68.         printl("\n【任务 1.2】查找特定文本:" + targetText);
  69.         try {
  70.             var ocrResult = screen.ocr(0, 0, 1, 1);
  71.             // 使用 findIncludeText 代替 findText
  72.             var detect = ocrResult.findIncludeText(targetText, Config.defaultRegion);
  73.             
  74.             if (detect != null) {
  75.                 printl("✓ 找到目标对象");
  76.                 // 使用 getRect() 获取位置
  77.                 var rect = detect.getRect();
  78.                 printl("位置信息:左=" + rect.getLeft() + ", 上=" + rect.getTop());
  79.                 printl("尺寸信息:宽=" + rect.getWidth() + ", 高=" + rect.getHeight());
  80.                 printl("中心点:(" + rect.getCenterX() + ", " + rect.getCenterY() + ")");
  81.                 return detect;
  82.             } else {
  83.                 printl("✗ 未找到文本:" + targetText);
  84.                 return null;
  85.             }
  86.         } catch (e) {
  87.             printl("错误:" + e);
  88.             return null;
  89.         }
  90.     },
  91.    
  92.     /**
  93.      * 任务 1.3: 查找包含特定文本的多个目标
  94.      */
  95.     findIncludeTexts: function(keyword) {
  96.         printl("\n【任务 1.3】查找包含关键词的所有目标:" + keyword);
  97.         try {
  98.             var ocrResult = screen.ocr(0, 0, 1, 1);
  99.             var targets = ocrResult.findIncludeTexts(keyword, Config.defaultRegion);
  100.             
  101.             if (targets && targets.length > 0) {
  102.                 printl("找到 " + targets.length + " 个包含 '" + keyword + "' 的目标对象");
  103.                 for (var i = 0; i < Math.min(5, targets.length); i++) {
  104.                     var rect = targets[i].getRect();
  105.                     printl("  [" + (i+1) + "] 位置:(" + rect.getCenterX().toFixed(3) + ", " + rect.getCenterY().toFixed(3) + ")");
  106.                 }
  107.                 return targets;
  108.             } else {
  109.                 printl("未找到包含 '" + keyword + "' 的目标");
  110.                 return [];
  111.             }
  112.         } catch (e) {
  113.             printl("错误:" + e);
  114.             return [];
  115.         }
  116.     },
  117.    
  118.     /**
  119.      * 任务 1.4: 使用正则表达式查找
  120.      */
  121.     findWithRegex: function(regex) {
  122.         printl("\n【任务 1.4】使用正则表达式查找:" + regex);
  123.         try {
  124.             var ocrResult = screen.ocr(0, 0, 1, 1);
  125.             var targets = ocrResult.findTextWithRegex(regex, Config.defaultRegion);
  126.             
  127.             if (targets && targets.length > 0) {
  128.                 printl("✓ 找到 " + targets.length + " 个匹配项");
  129.                 for (var i = 0; i < Math.min(3, targets.length); i++) {
  130.                     var rect = targets[i].getRect();
  131.                     printl("  [" + (i+1) + "] 位置:(" + rect.getCenterX().toFixed(3) + ", " + rect.getCenterY().toFixed(3) + ")");
  132.                 }
  133.                 return targets;
  134.             } else {
  135.                 printl("✗ 未找到匹配项");
  136.                 return [];
  137.             }
  138.         } catch (e) {
  139.             printl("错误:" + e);
  140.             return [];
  141.         }
  142.     }
  143. };

  144. /**
  145. * 模块 2: 点击操作核心
  146. */
  147. var ClickModule = {
  148.     /**
  149.      * 任务 2.1: 绝对坐标点击
  150.      */
  151.     clickAbsolute: function(x, y) {
  152.         printl("\n【任务 2.1】绝对坐标点击:(" + x + ", " + y + ")");
  153.         try {
  154.             hid.click(x, y);
  155.             sleep(Config.clickDelay);
  156.             printl("✓ 点击成功");
  157.         } catch (e) {
  158.             printl("错误:" + e);
  159.         }
  160.     },
  161.    
  162.     /**
  163.      * 任务 2.2: 百分比坐标点击
  164.      */
  165.     clickPercent: function(xPercent, yPercent) {
  166.         printl("\n【任务 2.2】百分比坐标点击:(" + xPercent + ", " + yPercent + ")");
  167.         try {
  168.             hid.clickPercent(xPercent, yPercent);
  169.             sleep(Config.clickDelay);
  170.             printl("✓ 点击成功");
  171.         } catch (e) {
  172.             printl("错误:" + e);
  173.         }
  174.     },
  175.    
  176.     /**
  177.      * 任务 2.3: 双击操作
  178.      */
  179.     doubleClick: function(x, y) {
  180.         printl("\n【任务 2.3】双击操作:(" + x + ", " + y + ")");
  181.         try {
  182.             hid.doubleClick(x, y);
  183.             sleep(Config.clickDelay * 2);
  184.             printl("✓ 双击成功");
  185.         } catch (e) {
  186.             printl("错误:" + e);
  187.         }
  188.     },
  189.    
  190.     /**
  191.      * 任务 2.4: 点击 OCR 识别目标
  192.      */
  193.     clickOcrTarget: function(detect, clickType) {
  194.         printl("\n【任务 2.4】点击 OCR 识别目标");
  195.         if (!detect) {
  196.             printl("✗ 目标为空或无效,无法点击");
  197.             return false;
  198.         }
  199.         
  200.         try {
  201.             if (clickType === "center") {
  202.                 // 使用 getRect() 获取中心点
  203.                 var rect = detect.getRect();
  204.                 var centerX = rect.getCenterX();
  205.                 var centerY = rect.getCenterY();
  206.                 printl("点击中心点:(" + centerX + ", " + centerY + ")");
  207.                 hid.click(centerX, centerY);
  208.             } else {
  209.                 printl("随机点击文本区域");
  210.                 detect.clickRandom();
  211.             }
  212.             
  213.             sleep(Config.clickDelay);
  214.             printl("✓ 点击成功");
  215.             return true;
  216.         } catch (e) {
  217.             printl("错误:" + e);
  218.             return false;
  219.         }
  220.     },
  221.    
  222.     /**
  223.      * 任务 2.5: 批量点击
  224.      */
  225.     clickMultipleTargets: function(detects) {
  226.         printl("\n【任务 2.5】批量点击多个目标");
  227.         if (!detects || detects.length === 0) {
  228.             printl("✗ 没有可点击的目标");
  229.             return;
  230.         }
  231.         
  232.         printl("准备点击 " + detects.length + " 个目标");
  233.         for (var i = 0; i < detects.length; i++) {
  234.             printl("点击目标 " + (i + 1) + "/" + detects.length);
  235.             detects[i].clickRandom();
  236.             sleep(300);
  237.         }
  238.         printl("✓ 批量点击完成");
  239.     }
  240. };

  241. /**
  242. * 模块 3: 图像识别进阶
  243. */
  244. var ImageModule = {
  245.     /**
  246.      * 任务 3.1: 基础找图
  247.      */
  248.     findImage: function(cvFile) {
  249.         printl("\n【任务 3.1】基础找图:" + cvFile);
  250.         try {
  251.             var detects = opencv.findImagesEx(cvFile);
  252.             
  253.             if (detects && detects.length > 0) {
  254.                 printl("✓ 找到 " + detects.length + " 个目标");
  255.                 for (var i = 0; i < Math.min(3, detects.length); i++) {
  256.                     printl("  [" + (i+1) + "] x=" + detects[i].x + ", y=" + detects[i].y);
  257.                 }
  258.                 return detects;
  259.             } else {
  260.                 printl("✗ 未找到目标");
  261.                 return [];
  262.             }
  263.         } catch (e) {
  264.             printl("错误:" + e);
  265.             return [];
  266.         }
  267.     },
  268.    
  269.     /**
  270.      * 任务 3.2: 区域找图
  271.      */
  272.     findImageInRegion: function(cvFile, region) {
  273.         printl("\n【任务 3.2】区域找图:" + cvFile);
  274.         printl("识别区域:[" + region.join(", ") + "]");
  275.         try {
  276.             var detects = opencv.findImages([cvFile], 0.8, 3000, 1, region);
  277.             
  278.             if (detects && detects.length > 0) {
  279.                 printl("✓ 在区域内找到 " + detects.length + " 个目标");
  280.                 return detects;
  281.             } else {
  282.                 printl("✗ 区域内未找到目标");
  283.                 return [];
  284.             }
  285.         } catch (e) {
  286.             printl("错误:" + e);
  287.             return [];
  288.         }
  289.     }
  290. };

  291. // ==================== 第三部分:综合实战案例 ====================

  292. /**
  293. * 实战案例 1: 智能应用启动器
  294. */
  295. var AppLauncher = {
  296.     /**
  297.      * 启动单个应用
  298.      */
  299.     launchApp: function(appName) {
  300.         printl("\n========================================");
  301.         printl("&#128640; 启动应用:" + appName);
  302.         printl("========================================");
  303.         
  304.         for (var retry = 0; retry < Config.retryTimes; retry++) {
  305.             try {
  306.                 printl("第 " + (retry + 1) + " 次尝试...");
  307.                
  308.                 // 1. OCR 识别
  309.                 var ocrResult = screen.ocr(0, 0, 1, 1);
  310.                
  311.                 // 2. 查找应用名称
  312.                 var appDetect = ocrResult.findIncludeText(appName, Config.defaultRegion);
  313.                
  314.                 if (appDetect && typeof appDetect === 'object' && appDetect.x) {
  315.                     printl("✓ 找到应用图标");
  316.                     
  317.                     // 3. 点击应用
  318.                     ClickModule.clickOcrTarget(appDetect, "center");
  319.                     
  320.                     printl("✓✓ 应用启动成功!");
  321.                     return true;
  322.                 } else {
  323.                     printl("✗ 未找到应用,准备重试...");
  324.                     sleep(1000);
  325.                 }
  326.             } catch (e) {
  327.                 printl("错误:" + e);
  328.                 sleep(1000);
  329.             }
  330.         }
  331.         
  332.         printl("✗✗ 应用启动失败(已重试 " + Config.retryTimes + " 次)");
  333.         return false;
  334.     },
  335.    
  336.     /**
  337.      * 批量启动应用
  338.      */
  339.     launchMultipleApps: function(appList) {
  340.         printl("\n========================================");
  341.         printl("&#128230; 批量启动应用");
  342.         printl("========================================");
  343.         
  344.         var successCount = 0;
  345.         
  346.         for (var i = 0; i < appList.length; i++) {
  347.             printl("\n正在启动 (" + (i + 1) + "/" + appList.length + "): " + appList[i]);
  348.             
  349.             if (this.launchApp(appList[i])) {
  350.                 successCount++;
  351.                 sleep(2000); // 应用切换等待
  352.             }
  353.             
  354.             sleep(500);
  355.         }
  356.         
  357.         printl("\n批量启动完成:成功 " + successCount + "/" + appList.length + " 个");
  358.     }
  359. };

  360. /**
  361. * 实战案例 2: 自动化导航系统
  362. */
  363. var AutoNavigator = {
  364.     /**
  365.      * 执行多步导航
  366.      */
  367.     navigate: function(steps) {
  368.         printl("\n========================================");
  369.         printl("&#129517; 开始自动化导航");
  370.         printl("========================================");
  371.         
  372.         for (var i = 0; i < steps.length; i++) {
  373.             var step = steps[i];
  374.             printl("\n步骤 " + (i + 1) + "/" + steps.length + ": " + step.action);
  375.             
  376.             try {
  377.                 if (step.action === "findAndClick") {
  378.                     var ocrResult = screen.ocr(0, 0, 1, 1);
  379.                     var target = ocrResult.findIncludeText(step.target, Config.defaultRegion);
  380.                     
  381.                     if (target && typeof target === 'object' && target.x) {
  382.                         ClickModule.clickOcrTarget(target, step.clickType || "random");
  383.                         printl("✓ 步骤完成");
  384.                         sleep(step.delay || 1000);
  385.                     } else {
  386.                         printl("✗ 未找到目标,导航中断");
  387.                         return false;
  388.                     }
  389.                 } else if (step.action === "waitFor") {
  390.                     printl("等待 " + step.duration + "ms...");
  391.                     sleep(step.duration);
  392.                 } else if (step.action === "swipe") {
  393.                     this.swipe(step.direction);
  394.                     printl("✓ 滑动完成");
  395.                 }
  396.             } catch (e) {
  397.                 printl("错误:" + e);
  398.                 return false;
  399.             }
  400.         }
  401.         
  402.         printl("\n✓✓ 导航完成!");
  403.         return true;
  404.     },
  405.    
  406.     /**
  407.      * 滑动操作
  408.      */
  409.     swipe: function(direction) {
  410.         try {
  411.             if (direction === "up") {
  412.                 hid.swipePercent(0.5, 0.8, 0.5, 0.2);
  413.             } else if (direction === "down") {
  414.                 hid.swipePercent(0.5, 0.2, 0.5, 0.8);
  415.             } else if (direction === "left") {
  416.                 hid.swipePercent(0.8, 0.5, 0.2, 0.5);
  417.             } else if (direction === "right") {
  418.                 hid.swipePercent(0.2, 0.5, 0.8, 0.5);
  419.             }
  420.             sleep(500);
  421.         } catch (e) {
  422.             printl("滑动错误:" + e);
  423.         }
  424.     }
  425. };

  426. /**
  427. * 实战案例 3: 智能表单填写器
  428. */
  429. var FormFiller = {
  430.     /**
  431.      * 自动填写表单
  432.      */
  433.     fillForm: function(formData) {
  434.         printl("\n========================================");
  435.         printl("&#128221; 开始填写表单");
  436.         printl("========================================");
  437.         
  438.         for (var fieldName in formData) {
  439.             var fieldValue = formData[fieldName];
  440.             printl("\n填写字段:" + fieldName);
  441.             
  442.             try {
  443.                 // 1. 查找字段标签
  444.                 var labelDetect = OCRModule.findText(fieldName, Config.defaultRegion);
  445.                            
  446.                 if (labelDetect != null) {
  447.                     // 2. 点击输入框(假设在标签下方)
  448.                     var rect = labelDetect.getRect();
  449.                     var inputX = rect.getCenterX();
  450.                     var inputY = rect.getBottom() + 50;
  451.                                 
  452.                     ClickModule.clickAbsolute(inputX, inputY);
  453.                     sleep(300);
  454.                                 
  455.                     // 3. 输入内容(需要使用输入模块)
  456.                     printl("输入内容:" + fieldValue);
  457.                     // 这里可以扩展输入功能
  458.                                 
  459.                     sleep(500);
  460.                 } else {
  461.                     printl("✗ 未找到字段标签:" + fieldName);
  462.                 }
  463.             } catch (e) {
  464.                 printl("错误:" + e);
  465.             }
  466.         }
  467.         
  468.         printl("\n✓ 表单填写完成");
  469.     }
  470. };

  471. // ==================== 第四部分:高级技巧与优化 ====================

  472. /**
  473. * 技巧 1: OCR 锁定优化
  474. */
  475. function demoOcrLock() {
  476.     printl("\n========================================");
  477.     printl("⚡ 技巧演示:OCR 锁定优化");
  478.     printl("========================================");
  479.    
  480.     try {
  481.         // 锁定 OCR
  482.         OCR.lockOCR();
  483.         printl("✓ OCR 已锁定");
  484.         
  485.         // 截图
  486.         var image = screen.screenShotFull();
  487.         
  488.         // 多次识别(使用同一张截图)
  489.         printl("\n第一次识别...");
  490.         var result1 = image.ocr(0, 0, 1, 1);
  491.         var text1 = result1.getAllString();
  492.         printl("识别到文本长度:" + text1.length);
  493.         
  494.         printl("\n第二次查找...");
  495.         var target = result1.findIncludeText("设置", Config.defaultRegion);
  496.         if (target != null) {
  497.             printl("✓ 找到目标");
  498.         }
  499.         
  500.         // 释放资源
  501.         image.close();
  502.         
  503.         // 解锁 OCR
  504.         OCR.unLock();
  505.         printl("✓ OCR 已解锁");
  506.         
  507.     } catch (e) {
  508.         printl("错误:" + e);
  509.         try {
  510.             OCR.unLock();
  511.         } catch (unlockError) {
  512.             // 忽略解锁错误
  513.         }
  514.     }
  515. }

  516. /**
  517. * 技巧 2: 安全查找(带重试机制)
  518. */
  519. function safeFindText(targetText, maxRetries) {
  520.     printl("\n安全查找文本:" + targetText);
  521.    
  522.     for (var retry = 0; retry < maxRetries; retry++) {
  523.         try {
  524.             printl("第 " + (retry + 1) + " 次尝试...");
  525.             var ocrResult = screen.ocr(0, 0, 1, 1);
  526.             var detect = ocrResult.findIncludeText(targetText, Config.defaultRegion);
  527.             
  528.             if (detect != null) {
  529.                 printl("✓ 找到目标");
  530.                 return detect;
  531.             }
  532.             
  533.             if (retry < maxRetries - 1) {
  534.                 printl("未找到,等待重试...");
  535.                 sleep(1000);
  536.             }
  537.         } catch (e) {
  538.             printl("查找出错:" + e);
  539.             if (retry < maxRetries - 1) {
  540.                 sleep(2000);
  541.             }
  542.         }
  543.     }
  544.    
  545.     printl("✗ 未找到目标");
  546.     return null;
  547. }

  548. /**
  549. * 技巧 3: 等待目标出现
  550. */
  551. function waitForTarget(targetText, maxWaitTime) {
  552.     printl("\n等待目标出现:" + targetText);
  553.     printl("最大等待时间:" + maxWaitTime + "ms");
  554.    
  555.     var startTime = Date.now();
  556.    
  557.     while (Date.now() - startTime < maxWaitTime) {
  558.         try {
  559.             var ocrResult = screen.ocr(0, 0, 1, 1);
  560.             var target = ocrResult.findIncludeText(targetText, Config.defaultRegion);
  561.             
  562.             if (target != null) {
  563.                 printl("✓ 目标出现!");
  564.                 return target;
  565.             }
  566.             
  567.             sleep(500);
  568.         } catch (e) {
  569.             printl("查找出错:" + e);
  570.             sleep(500);
  571.         }
  572.     }
  573.    
  574.     printl("✗ 超时,目标未出现");
  575.     return null;
  576. }

  577. // ==================== 第五部分:完整演示流程 ====================

  578. /**
  579. * 演示流程 1: 基础技能综合演练
  580. */
  581. function runBasicDemo() {
  582.     printl("\n");
  583.     printl("╔════════════════════════════════════════╗");
  584.     printl("║   基础技能综合演练                     ║");
  585.     printl("╚════════════════════════════════════════╝");
  586.    
  587.     // 1. OCR 识别
  588.     var allText = OCRModule.getAllText();
  589.    
  590.     // 2. 查找文本(示例:查找"设置")
  591.     var settingBtn = OCRModule.findText("设置");
  592.     if (settingBtn != null) {
  593.         printl("✓ 找到设置按钮,准备点击");
  594.         ClickModule.clickOcrTarget(settingBtn, "center");
  595.     } else {
  596.         printl("✗ 未找到设置按钮,跳过点击");
  597.     }
  598.    
  599.     sleep(1000);
  600.    
  601.     // 3. 查找多个目标(示例:查找包含"屏"的文本)
  602.     var screens = OCRModule.findIncludeTexts("屏");
  603.     if (screens && screens.length > 0) {
  604.         printl("找到 " + screens.length + " 个包含'屏'的文本,演示前 3 个");
  605.         ClickModule.clickMultipleTargets(screens.slice(0, Math.min(3, screens.length)));
  606.     }
  607.    
  608.     // 4. 正则查找(示例:查找数字)
  609.     var numbers = OCRModule.findWithRegex("\\d+");
  610.     if (numbers && numbers.length > 0) {
  611.         printl("\n找到 " + numbers.length + " 个包含数字的目标");
  612.         var rect = numbers[0].getRect();
  613.         printl("第一个目标位置:(" + rect.getCenterX().toFixed(3) + ", " + rect.getCenterY().toFixed(3) + ")");
  614.     }
  615. }

  616. /**
  617. * 演示流程 2: 应用启动实战
  618. */
  619. function runAppLauncherDemo() {
  620.     printl("\n");
  621.     printl("╔════════════════════════════════════════╗");
  622.     printl("║   应用启动器实战                       ║");
  623.     printl("╚════════════════════════════════════════╝");
  624.    
  625.     // 启动单个应用
  626.     AppLauncher.launchApp("微信");
  627.    
  628.     sleep(2000);
  629.    
  630.     // 批量启动
  631.     AppLauncher.launchMultipleApps(["QQ", "支付宝"]);
  632. }

  633. /**
  634. * 演示流程 3: 自动化导航实战
  635. */
  636. function runNavigatorDemo() {
  637.     printl("\n");
  638.     printl("╔════════════════════════════════════════╗");
  639.     printl("║   自动化导航实战                       ║");
  640.     printl("╚════════════════════════════════════════╝");
  641.    
  642.     // 定义导航步骤
  643.     var steps = [
  644.         { action: "findAndClick", target: "设置", clickType: "center", delay: 1500 },
  645.         { action: "waitFor", duration: 1000 },
  646.         { action: "findAndClick", target: "通用", clickType: "random", delay: 1500 },
  647.         { action: "swipe", direction: "up" },
  648.         { action: "waitFor", duration: 500 },
  649.         { action: "findAndClick", target: "关于", clickType: "center" }
  650.     ];
  651.    
  652.     AutoNavigator.navigate(steps);
  653. }

  654. /**
  655. * 演示流程 4: 高级技巧演练
  656. */
  657. function runAdvancedDemo() {
  658.     printl("\n");
  659.     printl("╔════════════════════════════════════════╗");
  660.     printl("║   高级技巧演练                         ║");
  661.     printl("╚════════════════════════════════════════╝");
  662.    
  663.     // 1. OCR 锁定
  664.     demoOcrLock();
  665.    
  666.     // 2. 安全查找
  667.     safeFindText("确定", 3);
  668.    
  669.     // 3. 等待目标
  670.     waitForTarget("取消", 5000);
  671. }

  672. // ==================== 主程序入口 ====================

  673. /**
  674. * 运行所有演示
  675. */
  676. function runAllDemos() {
  677.     printl("\n");
  678.     printl("╔═══════════════════════════════════════════╗");
  679.     printl("║  &#127822; AIWROK 屏幕自动化实战案例教学          ║");
  680.     printl("║  版本:" + Config.version + "                              ║");
  681.     printl("║  QQ 群:711841924 | 内测群:528816639      ║");
  682.     printl("╚═══════════════════════════════════════════╝");
  683.    
  684.     sleep(1000);
  685.    
  686.     // 基础技能演示
  687.     runBasicDemo();
  688.    
  689.     sleep(2000);
  690.    
  691.     // 应用启动器演示(注释掉,避免实际执行)
  692.     // runAppLauncherDemo();
  693.    
  694.     sleep(2000);
  695.    
  696.     // 导航系统演示(注释掉,避免实际执行)
  697.     // runNavigatorDemo();
  698.    
  699.     sleep(2000);
  700.    
  701.     // 高级技巧演示
  702.     runAdvancedDemo();
  703.    
  704.     printl("\n");
  705.     printl("╔═══════════════════════════════════════════╗");
  706.     printl("║  ✓ 所有演示完成!                         ║");
  707.     printl("║  祝你学习愉快!                           ║");
  708.     printl("╚═══════════════════════════════════════════╝");
  709. }

  710. /**
  711. * 单独运行某个演示(取消注释即可)
  712. */
  713. function main() {
  714.     // 运行所有演示
  715.     runAllDemos();
  716.    
  717.     // 或者单独运行某个演示:
  718.     // runBasicDemo();
  719.     // runAppLauncherDemo();
  720.     // runNavigatorDemo();
  721.     // runAdvancedDemo();
  722. }

  723. // 执行主程序
  724. main();
复制代码



unto苹果脚本屏幕类screen例子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页面
信息发布软件数据库MYQ业务流程心跳程序启动
数据库MYQ业务流程心跳程序启动
信息发布软件数据库MySQL功能支持创建表插入中文数据查询删除功能例子
数据库MySQL功能支持创建表插入中文数据查询删除功能例子

QQ|( 京ICP备09078825号 )

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

GMT+8, 2026-3-24 09:42 , Processed in 0.297221 second(s), 49 queries .

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

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