B2B网络软件
标题:
AIWROK苹果脚本sleep方法综合实战示例
[打印本页]
作者:
YYPOST群发软件
时间:
13 小时前
标题:
AIWROK苹果脚本sleep方法综合实战示例
AIWROK苹果脚本sleep方法综合实战示例
1.png
(881.29 KB, 下载次数: 0)
下载附件
13 小时前
上传
2.png
(860.58 KB, 下载次数: 0)
下载附件
13 小时前
上传
/*
🍎交流 QQ 群 711841924 群一,苹果内测群,528816639
🍎睡眠类 [sleep] 方法综合实战示例
📝 版本:2026-V2.0
🎯 适用:AIWROK 苹果 iOS 自动化脚本
*/
// ============================================
// 📚 sleep 类方法完整说明
// ============================================
// 方法一:📌millisecond 毫秒级延迟
/*
类别 详情说明
方法功能 使程序暂停执行指定的毫秒数
方法签名 Promise<void> millisecond(Number ms)
返回值 Promise<void>(延迟完成的Promise对象)
参数 - Number ms:需要延迟的毫秒数
应用场景 - UI动画延迟
- 点击间隔控制
- OCR识别后等待
- 短暂暂停操作
*/
// 示例:延迟10毫秒
sleep.millisecond(10);
// 方法二:📌second 秒级延迟
/*
类别 详情说明
方法功能 使程序暂停执行指定的秒数
方法签名 Promise<void> second(Number s)
返回值 Promise<void>(延迟完成的Promise对象)
参数 - Number s:需要延迟的秒数
应用场景 - 页面加载等待
- 任务进度提示
- 长时间操作间隔
- 网络请求等待
*/
// 示例:延迟10秒
sleep.second(10);
// ============================================
// 🎯 实战场景一:快速点击自动化工具
// ============================================
function quickClickAutomation() {
printl("=== 🎯 实战场景一:快速点击自动化工具 ===");
var clickCount = 0;
var targetCount = 100;
var clickInterval = 10; // 毫秒
printl("开始快速点击,目标次数:" + targetCount);
printl("点击间隔:" + clickInterval + "毫秒");
// 移动到目标位置
hid.moveToPercentPoint(0.4774, 0.7126, 0.4774, 0.7126);
// 等待移动完成(使用毫秒级延迟)
sleep.millisecond(500);
// 执行快速点击
for (let i = 0; i < targetCount; i++) {
hid.mouseDown();
hid.mouseUp();
clickCount++;
// 使用毫秒级延迟控制点击间隔
if (i < targetCount - 1) {
sleep.millisecond(clickInterval);
}
}
printl("✅ 点击完成,共执行 " + clickCount + " 次");
}
// ============================================
// 🎯 实战场景二:OCR识别与点击流程
// ============================================
function ocrClickWorkflow() {
printl("=== 🎯 实战场景二:OCR识别与点击流程 ===");
try {
// 步骤1:执行OCR识别
printl("步骤1:开始OCR识别...");
var ocrResult = screen.ocr(0, 0, 1, 1);
var allDetects = ocrResult.getAllDetect();
printl("✓ OCR识别完成,检测到 " + allDetects.length + " 个目标");
// 短暂延迟,确保识别结果稳定
sleep.millisecond(200);
// 步骤2:查找目标文本
printl("步骤2:查找目标文本...");
for (var i = 0; i < allDetects.length; i++) {
var detectObj = allDetects[i];
var text = detectObj.text();
if (text && text.indexOf("收益") !== -1) {
printl("✓ 找到目标:'" + text + "'");
// 点击目标
detectObj.click();
// 等待点击效果显示
sleep.millisecond(800);
// 步骤3:在下方区域查找次级目标
printl("步骤3:在下方区域查找次级目标...");
var rect = detectObj.getRect();
var coords = rect.toString().replace("矩形区域:", "").trim().split(", ");
var bottom = parseFloat(coords[2]) + 0.05;
var settingTarget = ocrResult.findIncludeText("明日再来", [0, coords[1], 1, bottom]);
if (settingTarget) {
printl("✓ 找到次级目标");
settingTarget.click();
// 等待操作完成
sleep.second(2);
}
break;
}
}
printl("✅ OCR工作流程完成");
} catch (e) {
printl("❌ 执行出错:" + e.message);
}
}
// ============================================
// 🎯 实战场景三:滑动操作序列
// ============================================
function swipeSequenceAutomation() {
printl("=== 🎯 实战场景三:滑动操作序列 ===");
var swipeCount = 0;
var maxSwipes = 5;
printl("开始滑动序列,最大次数:" + maxSwipes);
while (swipeCount < maxSwipes) {
swipeCount++;
printl("执行第 " + swipeCount + " 次滑动...");
// 上滑操作
// 正确参数顺序:startXPercent, startYPercent, endXPercent, endYPercent, swipTime, step
hid.swipVPercent(0.5, 0.8, 0.5, 0.2, 500, 1);
// 每次滑动后等待,让屏幕内容稳定
sleep.millisecond(1000);
// 尝试OCR识别目标
var ocrResult = screen.ocr(0, 0, 1, 1);
var target = ocrResult.findIncludeText("加载更多");
if (target) {
printl("✓ 找到'加载更多',点击加载");
target.click();
// 等待内容加载
sleep.second(2);
}
}
printl("✅ 滑动序列完成,共执行 " + swipeCount + " 次");
}
// ============================================
// 🎯 实战场景四:多任务调度系统
// ============================================
function multiTaskScheduler() {
printl("=== 🎯 实战场景四:多任务调度系统 ===");
var tasks = [
{ name: "任务1:检查更新", delay: 1000, action: checkUpdate },
{ name: "任务2:清理缓存", delay: 2000, action: clearCache },
{ name: "任务3:同步数据", delay: 3000, action: syncData }
];
printl("开始执行多任务调度...");
for (var i = 0; i < tasks.length; i++) {
var task = tasks[i];
printl("执行 " + task.name);
// 执行任务
task.action();
// 根据任务延迟等待
sleep.millisecond(task.delay);
printl("✓ " + task.name + " 完成");
}
printl("✅ 所有任务执行完成");
}
// 辅助函数
function checkUpdate() {
printl(" 正在检查更新...");
sleep.millisecond(500);
}
function clearCache() {
printl(" 正在清理缓存...");
sleep.millisecond(800);
}
function syncData() {
printl(" 正在同步数据...");
sleep.millisecond(1200);
}
// ============================================
// 🎯 实战场景五:智能等待与重试机制
// ============================================
function smartWaitRetry() {
printl("=== 🎯 实战场景五:智能等待与重试机制 ===");
var maxRetries = 3;
var retryDelay = 2000; // 2秒
printl("开始智能等待与重试,最大重试次数:" + maxRetries);
for (var attempt = 1; attempt <= maxRetries; attempt++) {
printl("第 " + attempt + " 次尝试...");
// 尝试查找目标
var ocrResult = screen.ocr(0, 0, 1, 1);
var target = ocrResult.findIncludeText("确认");
if (target) {
printl("✓ 找到目标,执行点击");
target.click();
// 等待操作完成
sleep.millisecond(1500);
printl("✅ 操作成功完成");
return;
} else {
printl("× 未找到目标");
if (attempt < maxRetries) {
printl("等待 " + (retryDelay / 1000) + " 秒后重试...");
sleep.second(retryDelay / 1000);
}
}
}
printl("❌ 达到最大重试次数,操作失败");
}
// ============================================
// 🎯 实战场景六:进度条模拟与反馈
// ============================================
function progressBarSimulation() {
printl("=== 🎯 实战场景六:进度条模拟与反馈 ===");
var totalSteps = 10;
var stepDelay = 500; // 每步500毫秒
printl("开始执行任务,总步骤:" + totalSteps);
for (var step = 1; step <= totalSteps; step++) {
var progress = Math.round((step / totalSteps) * 100);
// 显示进度提示
toast.show("任务执行中 (" + progress + "%)");
printl("进度:" + progress + "% - 步骤 " + step + "/" + totalSteps);
// 执行任务步骤
performTaskStep(step);
// 等待指定时间
sleep.millisecond(stepDelay);
}
toast.show("任务已完成");
printl("✅ 所有步骤执行完成");
}
function performTaskStep(step) {
// 模拟任务步骤
sleep.millisecond(100);
}
// ============================================
// 🎯 实战场景七:组合操作流程
// ============================================
function combinedWorkflow() {
printl("=== 🎯 实战场景七:组合操作流程 ===");
// 阶段1:初始化
printl("阶段1:初始化...");
sleep.millisecond(500);
// 阶段2:滑动到目标区域
printl("阶段2:滑动到目标区域...");
// 正确参数顺序:startXPercent, startYPercent, endXPercent, endYPercent, swipTime, step
hid.swipVPercent(0.5, 0.8, 0.5, 0.2, 800, 1);
sleep.millisecond(1000);
// 阶段3:OCR识别
printl("阶段3:OCR识别目标...");
var ocrResult = screen.ocr(0, 0, 1, 1);
var target = ocrResult.findIncludeText("开始");
if (target) {
printl("✓ 找到目标");
// 阶段4:点击目标
printl("阶段4:点击目标...");
target.click();
sleep.millisecond(800);
// 阶段5:等待页面加载
printl("阶段5:等待页面加载...");
sleep.second(3);
// 阶段6:执行后续操作
printl("阶段6:执行后续操作...");
performSecondaryActions();
printl("✅ 组合流程完成");
} else {
printl("❌ 未找到目标,流程终止");
}
}
function performSecondaryActions() {
// 执行次要操作
sleep.millisecond(500);
hid.moveToPercentPoint(0.5, 0.5, 0.5, 0.5);
sleep.millisecond(300);
hid.mouseDown();
hid.mouseUp();
sleep.millisecond(500);
}
// ============================================
// 🎯 实战场景八:性能优化示例
// ============================================
function performanceOptimization() {
printl("=== 🎯 实战场景八:性能优化示例 ===");
// 对比:使用不同延迟时间的性能差异
printl("测试1:使用10毫秒延迟");
var start1 = new Date().getTime();
for (let i = 0; i < 100; i++) {
sleep.millisecond(10);
}
var end1 = new Date().getTime();
printl("耗时:" + (end1 - start1) + "毫秒");
printl("测试2:使用100毫秒延迟");
var start2 = new Date().getTime();
for (let i = 0; i < 10; i++) {
sleep.millisecond(100);
}
var end2 = new Date().getTime();
printl("耗时:" + (end2 - start2) + "毫秒");
printl("测试3:使用1秒延迟");
var start3 = new Date().getTime();
for (let i = 0; i < 3; i++) {
sleep.second(1);
}
var end3 = new Date().getTime();
printl("耗时:" + (end3 - start3) + "毫秒");
printl("✅ 性能测试完成");
}
// ============================================
// 📊 使用建议与最佳实践
// ============================================
/*
🍎 sleep 方法使用建议:
1. 毫秒级延迟 (millisecond):
- 适用场景:UI动画、点击间隔、OCR后短暂等待
- 推荐值:10-1000毫秒
- 注意:过短的延迟可能导致操作不稳定
2. 秒级延迟 (second):
- 适用场景:页面加载、网络请求、长时间等待
- 推荐值:1-10秒
- 注意:过长的延迟会影响用户体验
3. 组合使用:
- 在复杂流程中,合理组合使用毫秒和秒级延迟
- 根据实际需要调整延迟时间
- 使用重试机制提高稳定性
4. 性能优化:
- 避免不必要的延迟
- 在循环中谨慎使用延迟
- 考虑使用异步操作替代长时间延迟
5. 调试技巧:
- 在关键步骤添加printl日志
- 使用toast.show显示进度
- 逐步调整延迟时间找到最佳值
*/
// ============================================
// 🚀 主函数:运行所有示例
// ============================================
function main() {
printl("🍎 AIWROK 睡眠类方法综合实战示例");
printl("====================================");
// 运行各个实战场景
quickClickAutomation();
sleep.second(1);
ocrClickWorkflow();
sleep.second(1);
swipeSequenceAutomation();
sleep.second(1);
multiTaskScheduler();
sleep.second(1);
smartWaitRetry();
sleep.second(1);
progressBarSimulation();
sleep.second(1);
combinedWorkflow();
sleep.second(1);
performanceOptimization();
printl("====================================");
printl("✅ 所有示例执行完成");
}
// 运行所有示例
main();
复制代码
欢迎光临 B2B网络软件 (http://bbs.niubt.cn/)
Powered by Discuz! X3.2