自动发帖软件

标题: AIWROK苹果脚本sleep方法综合实战示例 [打印本页]

作者: 发帖软件    时间: 3 小时前
标题: AIWROK苹果脚本sleep方法综合实战示例
AIWROK苹果脚本sleep方法综合实战示例
AIWROK苹果脚本sleep方法综合实战示例 群发软件发帖工具

AIWROK苹果脚本sleep方法综合实战示例 群发软件发帖工具

  1. /*
  2. 🍎交流 QQ 群 711841924 群一,苹果内测群,528816639
  3. 🍎睡眠类 [sleep] 方法综合实战示例
  4. 📝 版本:2026-V2.0
  5. 🎯 适用:AIWROK 苹果 iOS 自动化脚本
  6. */

  7. // ============================================
  8. // 📚 sleep 类方法完整说明
  9. // ============================================

  10. // 方法一:📌millisecond 毫秒级延迟
  11. /*
  12. 类别      详情说明
  13. 方法功能   使程序暂停执行指定的毫秒数
  14. 方法签名   Promise<void> millisecond(Number ms)
  15. 返回值     Promise<void>(延迟完成的Promise对象)
  16. 参数       - Number ms:需要延迟的毫秒数
  17. 应用场景   - UI动画延迟
  18.            - 点击间隔控制
  19.            - OCR识别后等待
  20.            - 短暂暂停操作
  21. */
  22. // 示例:延迟10毫秒
  23. sleep.millisecond(10);

  24. // 方法二:&#128204;second 秒级延迟
  25. /*
  26. 类别      详情说明
  27. 方法功能   使程序暂停执行指定的秒数
  28. 方法签名   Promise<void> second(Number s)
  29. 返回值     Promise<void>(延迟完成的Promise对象)
  30. 参数       - Number s:需要延迟的秒数
  31. 应用场景   - 页面加载等待
  32.            - 任务进度提示
  33.            - 长时间操作间隔
  34.            - 网络请求等待
  35. */
  36. // 示例:延迟10秒
  37. sleep.second(10);


  38. // ============================================
  39. // &#127919; 实战场景一:快速点击自动化工具
  40. // ============================================
  41. function quickClickAutomation() {
  42.     printl("=== &#127919; 实战场景一:快速点击自动化工具 ===");
  43.    
  44.     var clickCount = 0;
  45.     var targetCount = 100;
  46.     var clickInterval = 10; // 毫秒
  47.    
  48.     printl("开始快速点击,目标次数:" + targetCount);
  49.     printl("点击间隔:" + clickInterval + "毫秒");
  50.    
  51.     // 移动到目标位置
  52.     hid.moveToPercentPoint(0.4774, 0.7126, 0.4774, 0.7126);
  53.    
  54.     // 等待移动完成(使用毫秒级延迟)
  55.     sleep.millisecond(500);
  56.    
  57.     // 执行快速点击
  58.     for (let i = 0; i < targetCount; i++) {
  59.         hid.mouseDown();
  60.         hid.mouseUp();
  61.         clickCount++;
  62.         
  63.         // 使用毫秒级延迟控制点击间隔
  64.         if (i < targetCount - 1) {
  65.             sleep.millisecond(clickInterval);
  66.         }
  67.     }
  68.    
  69.     printl("✅ 点击完成,共执行 " + clickCount + " 次");
  70. }


  71. // ============================================
  72. // &#127919; 实战场景二:OCR识别与点击流程
  73. // ============================================
  74. function ocrClickWorkflow() {
  75.     printl("=== &#127919; 实战场景二:OCR识别与点击流程 ===");
  76.    
  77.     try {
  78.         // 步骤1:执行OCR识别
  79.         printl("步骤1:开始OCR识别...");
  80.         var ocrResult = screen.ocr(0, 0, 1, 1);
  81.         var allDetects = ocrResult.getAllDetect();
  82.         
  83.         printl("✓ OCR识别完成,检测到 " + allDetects.length + " 个目标");
  84.         
  85.         // 短暂延迟,确保识别结果稳定
  86.         sleep.millisecond(200);
  87.         
  88.         // 步骤2:查找目标文本
  89.         printl("步骤2:查找目标文本...");
  90.         for (var i = 0; i < allDetects.length; i++) {
  91.             var detectObj = allDetects[i];
  92.             var text = detectObj.text();
  93.             
  94.             if (text && text.indexOf("收益") !== -1) {
  95.                 printl("✓ 找到目标:'" + text + "'");
  96.                
  97.                 // 点击目标
  98.                 detectObj.click();
  99.                
  100.                 // 等待点击效果显示
  101.                 sleep.millisecond(800);
  102.                
  103.                 // 步骤3:在下方区域查找次级目标
  104.                 printl("步骤3:在下方区域查找次级目标...");
  105.                 var rect = detectObj.getRect();
  106.                 var coords = rect.toString().replace("矩形区域:", "").trim().split(", ");
  107.                 var bottom = parseFloat(coords[2]) + 0.05;
  108.                
  109.                 var settingTarget = ocrResult.findIncludeText("明日再来", [0, coords[1], 1, bottom]);
  110.                
  111.                 if (settingTarget) {
  112.                     printl("✓ 找到次级目标");
  113.                     settingTarget.click();
  114.                     
  115.                     // 等待操作完成
  116.                     sleep.second(2);
  117.                 }
  118.                
  119.                 break;
  120.             }
  121.         }
  122.         
  123.         printl("✅ OCR工作流程完成");
  124.         
  125.     } catch (e) {
  126.         printl("❌ 执行出错:" + e.message);
  127.     }
  128. }


  129. // ============================================
  130. // &#127919; 实战场景三:滑动操作序列
  131. // ============================================
  132. function swipeSequenceAutomation() {
  133.     printl("=== &#127919; 实战场景三:滑动操作序列 ===");
  134.    
  135.     var swipeCount = 0;
  136.     var maxSwipes = 5;
  137.    
  138.     printl("开始滑动序列,最大次数:" + maxSwipes);
  139.    
  140.     while (swipeCount < maxSwipes) {
  141.         swipeCount++;
  142.         printl("执行第 " + swipeCount + " 次滑动...");
  143.         
  144.         // 上滑操作
  145.         // 正确参数顺序:startXPercent, startYPercent, endXPercent, endYPercent, swipTime, step
  146.         hid.swipVPercent(0.5, 0.8, 0.5, 0.2, 500, 1);
  147.         
  148.         // 每次滑动后等待,让屏幕内容稳定
  149.         sleep.millisecond(1000);
  150.         
  151.         // 尝试OCR识别目标
  152.         var ocrResult = screen.ocr(0, 0, 1, 1);
  153.         var target = ocrResult.findIncludeText("加载更多");
  154.         
  155.         if (target) {
  156.             printl("✓ 找到'加载更多',点击加载");
  157.             target.click();
  158.             
  159.             // 等待内容加载
  160.             sleep.second(2);
  161.         }
  162.     }
  163.    
  164.     printl("✅ 滑动序列完成,共执行 " + swipeCount + " 次");
  165. }


  166. // ============================================
  167. // &#127919; 实战场景四:多任务调度系统
  168. // ============================================
  169. function multiTaskScheduler() {
  170.     printl("=== &#127919; 实战场景四:多任务调度系统 ===");
  171.    
  172.     var tasks = [
  173.         { name: "任务1:检查更新", delay: 1000, action: checkUpdate },
  174.         { name: "任务2:清理缓存", delay: 2000, action: clearCache },
  175.         { name: "任务3:同步数据", delay: 3000, action: syncData }
  176.     ];
  177.    
  178.     printl("开始执行多任务调度...");
  179.    
  180.     for (var i = 0; i < tasks.length; i++) {
  181.         var task = tasks[i];
  182.         printl("执行 " + task.name);
  183.         
  184.         // 执行任务
  185.         task.action();
  186.         
  187.         // 根据任务延迟等待
  188.         sleep.millisecond(task.delay);
  189.         
  190.         printl("✓ " + task.name + " 完成");
  191.     }
  192.    
  193.     printl("✅ 所有任务执行完成");
  194. }

  195. // 辅助函数
  196. function checkUpdate() {
  197.     printl("  正在检查更新...");
  198.     sleep.millisecond(500);
  199. }

  200. function clearCache() {
  201.     printl("  正在清理缓存...");
  202.     sleep.millisecond(800);
  203. }

  204. function syncData() {
  205.     printl("  正在同步数据...");
  206.     sleep.millisecond(1200);
  207. }


  208. // ============================================
  209. // &#127919; 实战场景五:智能等待与重试机制
  210. // ============================================
  211. function smartWaitRetry() {
  212.     printl("=== &#127919; 实战场景五:智能等待与重试机制 ===");
  213.    
  214.     var maxRetries = 3;
  215.     var retryDelay = 2000; // 2秒
  216.    
  217.     printl("开始智能等待与重试,最大重试次数:" + maxRetries);
  218.    
  219.     for (var attempt = 1; attempt <= maxRetries; attempt++) {
  220.         printl("第 " + attempt + " 次尝试...");
  221.         
  222.         // 尝试查找目标
  223.         var ocrResult = screen.ocr(0, 0, 1, 1);
  224.         var target = ocrResult.findIncludeText("确认");
  225.         
  226.         if (target) {
  227.             printl("✓ 找到目标,执行点击");
  228.             target.click();
  229.             
  230.             // 等待操作完成
  231.             sleep.millisecond(1500);
  232.             
  233.             printl("✅ 操作成功完成");
  234.             return;
  235.         } else {
  236.             printl("× 未找到目标");
  237.             
  238.             if (attempt < maxRetries) {
  239.                 printl("等待 " + (retryDelay / 1000) + " 秒后重试...");
  240.                 sleep.second(retryDelay / 1000);
  241.             }
  242.         }
  243.     }
  244.    
  245.     printl("❌ 达到最大重试次数,操作失败");
  246. }


  247. // ============================================
  248. // &#127919; 实战场景六:进度条模拟与反馈
  249. // ============================================
  250. function progressBarSimulation() {
  251.     printl("=== &#127919; 实战场景六:进度条模拟与反馈 ===");
  252.    
  253.     var totalSteps = 10;
  254.     var stepDelay = 500; // 每步500毫秒
  255.    
  256.     printl("开始执行任务,总步骤:" + totalSteps);
  257.    
  258.     for (var step = 1; step <= totalSteps; step++) {
  259.         var progress = Math.round((step / totalSteps) * 100);
  260.         
  261.         // 显示进度提示
  262.         toast.show("任务执行中 (" + progress + "%)");
  263.         printl("进度:" + progress + "% - 步骤 " + step + "/" + totalSteps);
  264.         
  265.         // 执行任务步骤
  266.         performTaskStep(step);
  267.         
  268.         // 等待指定时间
  269.         sleep.millisecond(stepDelay);
  270.     }
  271.    
  272.     toast.show("任务已完成");
  273.     printl("✅ 所有步骤执行完成");
  274. }

  275. function performTaskStep(step) {
  276.     // 模拟任务步骤
  277.     sleep.millisecond(100);
  278. }


  279. // ============================================
  280. // &#127919; 实战场景七:组合操作流程
  281. // ============================================
  282. function combinedWorkflow() {
  283.     printl("=== &#127919; 实战场景七:组合操作流程 ===");
  284.    
  285.     // 阶段1:初始化
  286.     printl("阶段1:初始化...");
  287.     sleep.millisecond(500);
  288.    
  289.     // 阶段2:滑动到目标区域
  290.     printl("阶段2:滑动到目标区域...");
  291.     // 正确参数顺序:startXPercent, startYPercent, endXPercent, endYPercent, swipTime, step
  292.     hid.swipVPercent(0.5, 0.8, 0.5, 0.2, 800, 1);
  293.     sleep.millisecond(1000);
  294.    
  295.     // 阶段3:OCR识别
  296.     printl("阶段3:OCR识别目标...");
  297.     var ocrResult = screen.ocr(0, 0, 1, 1);
  298.     var target = ocrResult.findIncludeText("开始");
  299.    
  300.     if (target) {
  301.         printl("✓ 找到目标");
  302.         
  303.         // 阶段4:点击目标
  304.         printl("阶段4:点击目标...");
  305.         target.click();
  306.         sleep.millisecond(800);
  307.         
  308.         // 阶段5:等待页面加载
  309.         printl("阶段5:等待页面加载...");
  310.         sleep.second(3);
  311.         
  312.         // 阶段6:执行后续操作
  313.         printl("阶段6:执行后续操作...");
  314.         performSecondaryActions();
  315.         
  316.         printl("✅ 组合流程完成");
  317.     } else {
  318.         printl("❌ 未找到目标,流程终止");
  319.     }
  320. }

  321. function performSecondaryActions() {
  322.     // 执行次要操作
  323.     sleep.millisecond(500);
  324.     hid.moveToPercentPoint(0.5, 0.5, 0.5, 0.5);
  325.     sleep.millisecond(300);
  326.     hid.mouseDown();
  327.     hid.mouseUp();
  328.     sleep.millisecond(500);
  329. }


  330. // ============================================
  331. // &#127919; 实战场景八:性能优化示例
  332. // ============================================
  333. function performanceOptimization() {
  334.     printl("=== &#127919; 实战场景八:性能优化示例 ===");
  335.    
  336.     // 对比:使用不同延迟时间的性能差异
  337.    
  338.     printl("测试1:使用10毫秒延迟");
  339.     var start1 = new Date().getTime();
  340.     for (let i = 0; i < 100; i++) {
  341.         sleep.millisecond(10);
  342.     }
  343.     var end1 = new Date().getTime();
  344.     printl("耗时:" + (end1 - start1) + "毫秒");
  345.    
  346.     printl("测试2:使用100毫秒延迟");
  347.     var start2 = new Date().getTime();
  348.     for (let i = 0; i < 10; i++) {
  349.         sleep.millisecond(100);
  350.     }
  351.     var end2 = new Date().getTime();
  352.     printl("耗时:" + (end2 - start2) + "毫秒");
  353.    
  354.     printl("测试3:使用1秒延迟");
  355.     var start3 = new Date().getTime();
  356.     for (let i = 0; i < 3; i++) {
  357.         sleep.second(1);
  358.     }
  359.     var end3 = new Date().getTime();
  360.     printl("耗时:" + (end3 - start3) + "毫秒");
  361.    
  362.     printl("✅ 性能测试完成");
  363. }


  364. // ============================================
  365. // &#128202; 使用建议与最佳实践
  366. // ============================================
  367. /*
  368. &#127822; sleep 方法使用建议:

  369. 1. 毫秒级延迟 (millisecond):
  370.    - 适用场景:UI动画、点击间隔、OCR后短暂等待
  371.    - 推荐值:10-1000毫秒
  372.    - 注意:过短的延迟可能导致操作不稳定

  373. 2. 秒级延迟 (second):
  374.    - 适用场景:页面加载、网络请求、长时间等待
  375.    - 推荐值:1-10秒
  376.    - 注意:过长的延迟会影响用户体验

  377. 3. 组合使用:
  378.    - 在复杂流程中,合理组合使用毫秒和秒级延迟
  379.    - 根据实际需要调整延迟时间
  380.    - 使用重试机制提高稳定性

  381. 4. 性能优化:
  382.    - 避免不必要的延迟
  383.    - 在循环中谨慎使用延迟
  384.    - 考虑使用异步操作替代长时间延迟

  385. 5. 调试技巧:
  386.    - 在关键步骤添加printl日志
  387.    - 使用toast.show显示进度
  388.    - 逐步调整延迟时间找到最佳值
  389. */


  390. // ============================================
  391. // &#128640; 主函数:运行所有示例
  392. // ============================================
  393. function main() {
  394.     printl("&#127822; AIWROK 睡眠类方法综合实战示例");
  395.     printl("====================================");
  396.    
  397.     // 运行各个实战场景
  398.     quickClickAutomation();
  399.     sleep.second(1);
  400.    
  401.     ocrClickWorkflow();
  402.     sleep.second(1);
  403.    
  404.     swipeSequenceAutomation();
  405.     sleep.second(1);
  406.    
  407.     multiTaskScheduler();
  408.     sleep.second(1);
  409.    
  410.     smartWaitRetry();
  411.     sleep.second(1);
  412.    
  413.     progressBarSimulation();
  414.     sleep.second(1);
  415.    
  416.     combinedWorkflow();
  417.     sleep.second(1);
  418.    
  419.     performanceOptimization();
  420.    
  421.     printl("====================================");
  422.     printl("✅ 所有示例执行完成");
  423. }

  424. // 运行所有示例
  425. main();
复制代码







欢迎光临 自动发帖软件 (http://www.fatiegongju.com/) Powered by Discuz! X3.2