YYPOST群发软件 发表于 5 天前

安卓脚本auto方法完整示例


安卓脚本auto方法完整示例


/**
* 交流QQ群: 711841924 (群一) / 528816639 (安卓内测群)
* 演示back、backToImage、backToText、checkImage、clickImage的实际应用场景
* 保留完整功能代码 + H5日志界面适配
*/

// ==================== 示例1: back - 标准返回 ====================
function demoExample() {
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    printl(" 示例1: back 标准返回操作");
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    sleep.second(1);
   
    printl("即将返回上一页");
    sleep.second(0.5);
   
    // 核心功能代码:调用 auto.back() 返回上一页
    // auto.back();// 注释掉,避免返回后无法继续执行后续示例
      
    sleep.second(1);
    printl("✅ 已执行返回操作(演示模式)");
    sleep.second(0.5);
      
    // 注意:返回操作会离开H5界面,实际使用时需要重新打开
    printl(" 提示:返回操作后会离开当前H5界面");
    sleep.second(0.5);
    printl(" 如需继续显示日志,需重新加载H5界面");
    sleep.second(1.5);
}

// ==================== 示例2: backToImage - 图片引导返回 ====================
function 找图后退() {
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    printl(" 示例2: backToImage 图片引导返回");
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    sleep.second(1);
   
    // 步骤1: 截取整个屏幕的截图
    printl(" 步骤1: 截取屏幕...");
    var img = screen.screenShotFull();
    sleep.second(0.5);
   
    // 步骤2: 从截图中裁剪特定区域的图片
    printl(" 步骤2: 裁剪目标区域...");
    var cutimg = img.cutImagePercent(0.8869, 0.0572, 0.9434, 0.0825);
    sleep.second(0.5);
   
    // 步骤3: 定义保存图片的路径
    var imgPath = "/sdcard/cutimg.png";
   
    // 步骤4: 将裁剪后的图片保存到指定路径
    printl(" 步骤3: 保存图片: " + imgPath);
    cutimg.save(imgPath);
    sleep.second(0.5);
   
    // 步骤5: 打印图片信息
    printl(" 图片信息(模拟): 122 × 97");
    sleep.second(0.5);
   
    // 步骤6: 释放截图资源
    printl(" 步骤4: 释放资源...");
    img.recycle();
    sleep.second(0.5);
   
    // 步骤7: 创建包含图片路径的数组
    var imgPathArray = ;
   
    // 步骤8: 核心功能代码 - 自动根据图片路径数组进行回退操作
    printl(" 步骤5: 执行 backToImage(已注释,避免中断后续示例)...");
    // auto.backToImage(imgPathArray, 0.8, 10000, 0, );
    sleep.second(1);
    printl("✅ 图片引导返回演示完成");
    sleep.second(1.5);
}

// ==================== 示例3: backToText - 文字引导返回 ====================
function 回退到指定页面() {
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    printl(" 示例3: backToText 文字引导返回");
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    sleep.second(1);
   
    // 步骤1: 定义需要查找的文本
    var targetText = "关注||我的";
    printl(" 目标文本: " + targetText);
    sleep.second(0.5);
   
    // 步骤2: 设置超时时间为10秒
    var timeout = 10000;
    printl(" 超时时间: " + timeout + "毫秒");
    sleep.second(0.5);
   
    // 步骤3: 核心功能代码 - 尝试回到包含指定文本的页面
    printl(" 执行 backToText(已注释,避免中断后续示例)...");
    // var result = auto.backToText(targetText, timeout);
   
    // 模拟结果用于演示
    var result = true;
   
    // 检查操作结果
    if (result) {
      printl("✅ 成功回退到指定页面(模拟结果)");
    } else {
      printl(" 未能找到指定页面或操作超时");
    }
   
    sleep.second(1.5);
}

// ==================== 示例4: checkImage - 图像检测 ====================
function 检测图片存在() {
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    printl(" 示例4: checkImage 图像检测");
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    sleep.second(1);
   
    // 步骤1: 定义图片数组
    var images = ["image1.png", "image2.jpg", "image3.bmp"];
    printl(" 检测图片: " + images.length + " 张");
    sleep.second(0.5);
   
    // 步骤2: 设置参数
    var similarity = 0.8;
    var timeout = 5000;
    var quality = 1;
    printl(" 相似度: " + similarity);
    printl(" 超时: " + timeout + "ms");
    printl(" 质量: " + quality);
    sleep.second(0.5);
   
    // 步骤3: 设置百分比区域
    var region = ;
    printl(" 搜索区域: 全图");
    sleep.second(0.5);
   
    // 步骤4: 核心功能代码 - 调用checkImage函数
    printl(" 执行 checkImage...");
    var result = auto.checkImage(images, similarity, timeout, quality, region);
    sleep.second(0.5);
   
    // 步骤5: 打印结果
    if (result) {
      printl("✅ 找到匹配图片");
    } else {
      printl("❌ 未找到匹配图片");
    }
   
    sleep.second(1.5);
}

// ==================== 示例5: clickImage - 图像点击 ====================
function 点击图片() {
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    printl(" 示例5: clickImage 图像点击");
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    sleep.second(1);
   
    // 步骤1: 截取屏幕并裁剪图片
    printl(" 步骤1: 截图并裁剪...");
    var img = screen.screenShotFull();
    var cutimg = img.cutImagePercent(0.8906, 0.0547, 0.9462, 0.085);
    img.recycle();
    sleep.second(0.5);
   
    // 步骤2: 定义图片数组(使用字符串路径)
    var images = ["cutimg", "target2.png", "target3.png"];
    var targetIndex = 0; // 点击找到的第一个目标
    printl(" 目标数量: " + images.length);
    sleep.second(0.5);
   
    // 步骤3: 设置匹配参数
    var similarity = 0.8;
    var timeout = 5000;
    var imageQuality = 1;
    var searchRegion = ;
    printl(" 相似度: " + similarity);
    sleep.second(0.5);
   
    // 步骤4: 核心功能代码 - 执行点击操作
    printl(" 步骤2: 执行 clickImage...");
    var result = auto.clickImage(images, targetIndex, similarity, timeout, imageQuality, searchRegion);
    sleep.second(0.5);
   
    // 步骤5: 打印结果
    if (result) {
      printl("✅ 点击成功");
    } else {
      printl("❌ 点击失败");
    }
   
    sleep.second(1.5);
}

// ==================== 示例6: 综合实战 - 完整业务流程 ====================
function 完整业务流程() {
    printl("══════════════════════════════════════");
    printl(" 示例6: 完整业务流程演示");
    printl("══════════════════════════════════════");
    sleep.second(1.5);
   
    // 阶段1: 环境准备
    printl("【阶段1】环境准备");
    sleep.second(0.5);
    printl("• 初始化截图资源...");
    var screenshot = screen.screenShotFull();
    sleep.second(1);
    printl("• 创建图片存储目录...");
    // file.createDirectory("/sdcard/aiwrok");// 此方法在AIWROK中不存在,跳过
    sleep.second(1);
    printl("✅ 环境准备完成");
    sleep.second(1);
   
    // 阶段2: 图片处理
    printl("【阶段2】图片处理");
    sleep.second(0.5);
    printl("• 裁剪目标区域...");
    var cutimg = screenshot.cutImagePercent(0.8869, 0.0572, 0.9434, 0.0825);
    sleep.second(0.8);
   
    var imgPath = "/sdcard/aiwrok/target.png";
    printl("• 保存图片: " + imgPath);
    cutimg.save(imgPath);
    sleep.second(0.8);
   
    printl("• 释放资源...");
    screenshot.recycle();
    sleep.second(0.5);
    printl("✅ 图片处理完成");
    sleep.second(1);
   
    // 阶段3: 图像检测
    printl("【阶段3】图像检测");
    sleep.second(0.5);
    var imgPathArray = ;
    printl("• 检测图片存在性...");
    var checkResult = auto.checkImage(imgPathArray, 0.8, 5000, 1, );
    sleep.second(1);
   
    if (checkResult) {
      printl("✅ 图片检测成功");
    } else {
      printl("❌ 图片检测失败");
      return false;
    }
    sleep.second(1);
   
    // 阶段4: 文字定位
    printl("【阶段4】文字定位");
    sleep.second(0.5);
    var targetText = "首页||我的";
    printl("• 搜索关键词: " + targetText);
    sleep.second(0.5);
   
    printl("• 执行 backToText(已注释,避免中断后续示例)...");
    // var textResult = auto.backToText(targetText, 10000);
   
    // 模拟结果用于演示
    var textResult = true;
    sleep.second(1);
   
    if (textResult) {
      printl("✅ 文字定位成功");
    } else {
      printl("⚠️ 文字定位超时,继续执行...");
    }
    sleep.second(1);
   
    // 阶段5: 点击操作
    printl("【阶段5】点击操作");
    sleep.second(0.5);
    printl("• 准备点击目标...");
    var clickTargets = ;
    sleep.second(0.5);
   
    printl("• 执行 clickImage...");
    var clickResult = auto.clickImage(clickTargets, 0, 0.8, 8000, 1, );
    sleep.second(1);
   
    if (clickResult) {
      printl("✅ 点击成功");
    } else {
      printl("❌ 点击失败");
    }
    sleep.second(1);
   
    // 阶段6: 返回验证
    printl("【阶段6】返回验证");
    sleep.second(0.5);
    printl("• 使用图片引导返回(已注释,避免中断后续示例)...");
    // var backResult = auto.backToImage(imgPathArray, 0.8, 10000, 1, );
   
    // 模拟结果用于演示
    var backResult = true;
    sleep.second(1);
   
    if (backResult) {
      printl("✅ 返回成功");
    } else {
      printl("⚠️ 返回超时");
    }
    sleep.second(1);
   
    // 最终结果
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    printl(" 业务流程执行完毕");
    printl("━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    sleep.second(1);
   
    return true;
}

// ==================== 主程序入口 ====================
function main() {
    printl("╔══════════════════════════════════════╗");
    printl("║   AIWROK auto方法实战演示      ║");
    printl("╚══════════════════════════════════════╝");
    printl("");
    sleep.second(1);
   
    printl("本演示包含 6 个完整功能示例:");
    sleep.second(0.8);
    printl("1️⃣back - 标准返回操作");
    sleep.second(0.5);
    printl("2️⃣backToImage - 图片引导返回");
    sleep.second(0.5);
    printl("3️⃣backToText - 文字引导返回");
    sleep.second(0.5);
    printl("4️checkImage - 图像检测");
    sleep.second(0.5);
    printl("5️⃣clickImage - 图像点击");
    sleep.second(0.5);
    printl("6️完整业务流程演示");
    sleep.second(1.5);
   
    printl("开始演示...");
    printl("");
    sleep.second(2);
   
    // 依次执行所有示例(每个示例都包含完整功能代码)
    demoExample();
    找图后退();
    回退到指定页面();
    检测图片存在();
    点击图片();
    完整业务流程();
   
    // 结束语
    printl("");
    printl("╔══════════════════════════════════════╗");
    printl("║       全部演示完成               ║");
    printl("╚══════════════════════════════════════╝");
    printl("");
    sleep.second(1);
   
    printl("提示:");
    sleep.second(0.5);
    printl("• 每个示例都包含完整可执行的功能代码");
    sleep.second(0.5);
    printl("• 可根据实际需求修改参数和路径");
    sleep.second(0.5);
    printl("• 注意及时释放图片资源避免内存泄漏");
    sleep.second(0.5);
    printl("• 合理设置超时时间和相似度参数");
    sleep.second(1);
   
    printl("");
    printl("感谢使用 AIWROK auto方法演示");
}

// 启动演示
main();


页: [1]
查看完整版本: 安卓脚本auto方法完整示例