回答
文档地址 https://docs.hamibot.com/
在 Hamibot 中,“点击图片” 的操作通常分为两个步骤:
- 找图:在屏幕截图中查找目标图片的位置。
- 点击坐标:如果找到图片,则获取其坐标并执行点击。
你需要先准备一张目标图片(例如微信图标、某个按钮截图),保存到设备中(如 /sdcard/ 目录下),然后通过脚本读取并进行匹配和点击。
✅ 具体案例:点击桌面上的“微信”图标
// 启用无障碍服务
auto.waitFor();
// 请求截图权限
if (!requestScreenCapture()) {
toastLog('没有授予 Hamibot 屏幕截图权限');
hamibot.exit();
}
// 等待截图准备
sleep(1000);
// 读取本地模板图片(请确保该路径下的图片存在)
var wechatIcon = images.read('/sdcard/微信图标.png');
// 如果未找到模板图片,提示错误
if (!wechatIcon) {
toastLog('未找到模板图片,请检查路径是否正确');
hamibot.exit();
}
// 截取当前屏幕
var screen = captureScreen();
// 在屏幕上查找图片
var point = findImage(screen, wechatIcon, {
region: [0, 0, device.width, device.height], // 搜索区域为全屏
threshold: 0.8 // 匹配阈值,0.8 表示 80% 相似度
});
// 判断是否找到
if (point) {
toastLog('找到微信图标,坐标:' + point);
// 执行点击(默认点击图片中心点)
click(point.x, point.y);
} else {
toastLog('未找到微信图标');
}
🔧 使用说明
-
模板图片制作:
- 使用手机截图功能截取你要点击的“图片”或“按钮”。
- 使用图片编辑工具裁剪成最小范围,并保存为 PNG 格式。
- 推荐命名如:
/sdcard/微信图标.png。
-
threshold 参数说明:
- 范围是
0.0 ~ 1.0,数值越大要求越精确。 - 一般建议设置为
0.8 ~ 0.95。 - 若界面有轻微变化(颜色偏移、缩放),可适当调低。
- 范围是
-
region 参数说明:
[x, y, width, height]定义搜索区域,提高效率。- 如只在屏幕下半部分查找,可以写
region: [0, 1000, 1080, 400]。
-
兼容性注意:
- 不同设备分辨率不同,Hamibot 会自动根据
setScreenMetrics()放缩坐标。建议在脚本开头设定参考分辨率:setScreenMetrics(1080, 1920); // 以 1080x1920 为设计基准
- 不同设备分辨率不同,Hamibot 会自动根据
📌 提示与最佳实践
- 将常用图标统一存放在
/sdcard/Pictures/hamibot/下,便于管理。 - 可结合
while循环重试找图,直到出现为止:while (!clickOnImage('/sdcard/确定按钮.png')) { sleep(1000); } function clickOnImage(path) { var img = images.read(path); if (!img) return false; var p = findImage(captureScreen(), img, { threshold: 0.8 }); if (p) click(p.x, p.y); return p !== null; } - 避免使用动态内容作为模板(如含时间、头像变化等)。
完成以上配置后,运行脚本即可实现“看到指定图片 → 自动点击”的自动化操作。
补充回答 1
文档地址 https://docs.hamibot.com/
你可以将目标图片以 Base64 编码内嵌到脚本中,避免依赖外部文件。这种方式更适合分发和管理脚本。
以下是一个完整的示例:使用 Base64 解码图片,并在屏幕上查找该图片并点击。
// 启用无障碍服务
auto.waitFor();
// 请求截图权限
if (!requestScreenCapture()) {
toastLog('请求截图失败');
hamibot.exit();
}
// 等待截图初始化
sleep(1000);
// 示例:Base64 编码的 PNG 图片(请替换为你自己的 Base64 数据)
var base64Image = "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACxElEQVRoQ+2ZTUgUURzHfzM7q6u7q8PqYZEWYfQQRA9F3bqEFEEQhFBB1KFD91LiweAiCDpElyB6CCJEUEiHIIgggggiQhBBBAkiiCAiBBFBEPVHdmdnZt7sTntvZ3dnd2Z3v8/D7L75vt/3+/3e/MabCMYYkD+aAHjS0tIWAHgM4C6AZwCeA3gO4CGAGQCjANIA9AEYAjAM4ACAQgCHAOwDsAfATgCbAKwEsArASgArAbQB+AtgE4B/AHYB+AXgLIDPAE4D+ALgAoBvAI4B+B7r5yWAnwBOAPgD4CyA3wAuAPgH4DaAlwC+AzgJ4GcMngXwG8BpAH8AnALwF8AFAD8BXAHwBcBZAH8AnAHwG8BZAH8DXAbwG8BlAH8CXAHwG8BVAD8BXAHwG8BVAL8AXAHwG8BVAD8BXAHwG8DVGLwG4DeAawB+A7gG4DeAawB+A7gG4DeAawB+A7gG4DeAazF4FsBvANcA/AZwDcBvANcA/AZwDcBvANcA/AZwDcBvANdi8CyA3wCuAfgN4BqA3wCuAfgN4BqA3wCuAfgN4BqA3wCuAfi9EOALgAcA3gF4BuAvgHMA/gJ4COAJgEcAHgF4AOABgPsA7gG4A+AWgJsAbgC4DuAagKsArgC4DOAygIsALgC4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AugNsAbgG4CeAmgBsArgO4BuAqgCsALgO4DOASgIsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArgK4AuAygMsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArgK4AuAygMsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArgK4AuAygMsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArgK4AuAygMsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArg
ℹ️ 本回答由 AI 生成,内容仅供参考