hamibot的这段代码加一个打印“成功启动应用”
// 启动中国银河证券APP,先确保应用唤起
launchApp('中国银河证券');
// 等待 8 秒,给应用启动和弹窗加载留时间
sleep(8000);

已存档
v7nl9evprm · 18 天前
第 1 条补充
·
18 天前

用Hamibot在此段代码上加一个判断页面是否有X符号的图标,有就点击X的符号
launchApp('中国银河证券');
toastLog("成功打开应用")
sleep(8000); // 等待应用启动

第 2 条补充
·
18 天前

// 启动中国银河证券APP,先确保应用唤起
launchApp('中国银河证券');
// 打印成功启动应用信息
toastLog("成功启动应用");
// 等待 8 秒,给应用启动和弹窗加载留时间
sleep(8000);
在此段代码上加一个判断页面是否有X符号的图标,有就点击X的图标

回答

Hamibot AI
1
· 18 天前

在代码中添加 toastLog 函数即可实现打印效果,以下是修改后的代码:

// 启动中国银河证券APP,先确保应用唤起
launchApp('中国银河证券');
// 打印成功启动应用信息
toastLog("成功启动应用");
// 等待 8 秒,给应用启动和弹窗加载留时间
sleep(8000);

功能说明

  • toastLog("成功启动应用") 会同时触发:
    1. 屏幕显示气泡提示
    2. 控制台输出日志(可通过 Hamibot 的日志面板查看)
  • 该方法符合 Hamibot 的异步执行特性,无需额外处理阻塞问题

文档地址 https://docs.hamibot.com/


补充回答 1

以下是添加判断并点击X图标的功能代码:

// 请求截图权限
if (!requestScreenCapture()) {
    toastLog("需要截图权限才能执行检测");
    hamibot.exit();
}

// 启动中国银河证券APP
launchApp('中国银河证券');
toastLog("成功打开应用");
sleep(8000); // 等待应用启动

// 截图检测X图标
var img = captureScreen();
// 查找红色X图标(示例颜色值#FF0000)
var p = images.findColor(img, "#FF0000", {
    threshold: 4 // 颜色相似度容差
});

if (p) {
    toastLog("检测到X图标,正在点击关闭");
    click(p.x, p.y);
} else {
    toastLog("未检测到X图标");
}

实现说明

  1. 权限处理:新增截图权限请求,避免无权限导致的脚本异常
  2. 颜色检测
    • 使用 images.findColor 检测红色#FF0000作为示例
    • 可根据实际图标颜色修改颜色值(建议用吸色器获取准确颜色)
  3. 阈值控制:threshold=4 允许±4的RGB误差,提高容错性
  4. 执行逻辑
    • 检测到图标时输出提示并点击
    • 未检测到时继续执行后续逻辑

扩展建议

  1. 区域限定:若X图标在固定位置,可通过region: [x, y, w, h]限定查找范围
  2. 多颜色检测:若X由多种颜色组成,可用findMultiColors检测复合特征
  3. 循环检测:需持续检测时可包裹setInterval循环

文档地址 https://docs.hamibot.com/


补充回答 2

// 请求截图权限(必须在脚本开头调用)
if (!requestScreenCapture()) {
    toastLog("截图权限未授权,退出脚本");
    hamibot.exit();
}

// 启动中国银河证券APP
launchApp('中国银河证券');
toastLog("成功启动应用");
sleep(8000); // 等待应用启动

// 截图检测X图标(需要根据实际图标调整参数)
var img = captureScreen();
// 查找红色X图标(示例颜色值#FF0000,需替换为真实颜色值)
var p = images.findColor(img, "#FF0000", {
    region: [0, 0, device.width, device.height], // 全屏检测
    threshold: 4 // 颜色相似度容差
});

if (p) {
    toastLog("检测到X图标,坐标("+p.x+","+p.y+")");
    click(p.x, p.y);
    sleep(1000); // 等待关闭动画
} else {
    toastLog("未检测到X图标");
}

实现说明

  1. 权限处理:强制要求截图权限,否则直接退出脚本
  2. 颜色检测
    • 使用 #FF0000 红色作为示例值(实际需用吸色器获取)
    • region 参数可限制查找区域,提高效率
    • threshold 调整容差值(0-255,值越精确匹配越严格)
  3. 坐标处理:点击检测到的图标坐标并添加1秒等待
  4. 调试建议
    • 建议通过 img.save("/sdcard/x_icon.png") 保存截图分析
    • 可用 images.writeImage("/sdcard/screen.png", img) 保存当前屏幕图像

优化方向

  1. 图像匹配(需提供模板图片):
    var template = images.read("/sdcard/x_icon.png");
    var p = images.findImage(img, template, {
        threshold: 0.8 // 相似度阈值
    });
    
  2. 多点检测:检测多个颜色点提高准确性
  3. AI识别(需购买专业版):使用 ocr.recognize() 识别特定图形

文档地址 https://docs.hamibot.com/

ℹ️ 本回答由 AI 生成,内容仅供参考