回答
有的,你可以编写一个 Hamibot 脚本,在识别到屏幕中包含特定关键词时自动截屏。这个功能结合了 OCR 文字识别 和 屏幕截图 功能,通过定时检测当前屏幕内容来判断是否出现目标关键词。
以下是完整的示例脚本:
// 文档地址 https://docs.hamibot.com/
// 等待无障碍服务启动
auto.waitFor();
// 请求截图权限
if (!requestScreenCapture()) {
toastLog('请授予屏幕截图权限!');
hamibot.exit();
}
// 设置你要检测的关键词
const KEYWORD = '订单';
// 每隔1秒检查一次屏幕内容
setInterval(function () {
// 截取当前屏幕
const img = captureScreen();
if (!img) {
log('截图失败');
return;
}
// 使用 OCR 识别文字(只获取纯文本)
const textResult = ocr.recognizeText(img);
if (textResult && textResult.includes(KEYWORD)) {
toastLog('发现关键词:' + KEYWORD + ',正在自动截屏保存');
// 生成时间戳文件名
const date = new Date();
const fileName = '/sdcard/Hamibot/' + date.toLocaleString().replace(/[/:\s]/g, '-') + '-capture.png';
// 再次截屏并保存(可选:也可以保存上一次的 img)
const finalImg = captureScreen();
images.save(finalImg, fileName);
toastLog('截图已保存至:' + fileName);
// 可根据需要添加后续操作,如发送通知、退出循环等
// hamibot.exit(); // 如果只想触发一次,可以退出
}
}, 1000); // 每1000毫秒(1秒)检测一次
功能说明:
- 脚本会每隔 1 秒对屏幕进行一次截图和 OCR 识别。
- 当识别出的文字中包含你设定的关键词(例如
'订单')时,就会自动保存一张截图到/sdcard/Hamibot/目录下。 - 文件名为当前时间,避免重复。
注意事项:
- 性能优化建议:OCR 识别较耗资源,不建议设置过短的间隔(如低于800ms)。可根据实际需求调整
setInterval的时间。 - 首次运行需授权:确保允许“无障碍服务”和“屏幕截图权限”。
- 依赖 OCR 模块:该脚本使用了 Hamibot 内置的
ocr.recognizeText()方法,请确保你的 Hamibot 版本为 1.2.2 或更高。 - 精准匹配可扩展:如果需要正则匹配或多关键词判断,可以修改条件逻辑,例如:
const keywords = ['订单', '支付', '成功']; const found = keywords.some(word => textResult.includes(word)); if (found) { ... }
如果你希望在后台持续监控而不影响其他操作,还可以将检测逻辑放入独立线程中运行。如果有更多定制需求,比如上传截图、发送通知等,也可以进一步扩展脚本。
补充回答 1
编写并使用 Hamibot 脚本的流程非常清晰,下面我会一步步带你完成从零开始创建、调试到运行脚本的全过程。
第一步:准备工作
-
安装 Hamibot 客户端
- 在手机上下载并安装 Hamibot 应用。
- 支持 Android 设备(暂不支持 iOS)。
-
开启无障碍服务
- 打开 Hamibot → 点击“开始使用”或进入「设置」→ 开启「无障碍服务」。
- 这是自动化操作的前提权限。
-
可选:电脑开发更高效
- 推荐使用 VSCode 配合插件 Hamibot 开发助手(作者 BATU1579),提供代码提示和同步功能。
- 插件安装方式:在 VSCode 扩展市场搜索 “Hamibot 开发助手” 并安装。
第二步:编写你的第一个脚本
以下是一个简单的示例脚本,打开微信并等待页面加载:
// 文档地址 https://docs.hamibot.com/
// 等待无障碍服务就绪
auto.waitFor();
// 启动微信
launchApp('微信');
toastLog('已启动微信');
// 等待首页出现“微信”标签
text('微信').waitFor();
sleep(1000);
toastLog('进入微信主界面');
如何输入这段代码?
- 方法一:在 Hamibot 客户端点击「+」新建脚本 → 粘贴代码 → 保存为“测试脚本”。
- 方法二:用 VSCode 编辑后通过插件推送到手机。
第三步:运行与调试
- 在 Hamibot 主界面找到你保存的脚本。
- 点击脚本卡片 → 选择「运行」。
- 观察手机是否自动打开微信,并弹出提示信息。
- 如果失败,查看日志:
- 点击脚本右上角图标 → 查看「运行日志」,排查错误。
第四步:学习核心 API
Hamibot 基于 JavaScript,常用功能包括:
| 类别 | 示例 |
|---|---|
| 应用控制 | launchApp('支付宝') —— 启动应用 |
| 界面查找 | text('登录').findOne() —— 找到文字为“登录”的控件 |
| 点击操作 | click(500, 800) 或 text('确定').findOne().click() |
| 等待元素 | id('btn_submit').waitFor() |
| 截图/OCR | captureScreen() + ocr.recognizeText(img) |
| 循环任务 | setInterval(() => { ... }, 5000) 每5秒执行一次 |
你可以参考官方文档获取完整 API 列表。
第五步:进阶技巧
-
添加异常处理:
try { text('提交').findOne(3000); // 最多等3秒 } catch (e) { toastLog('未找到提交按钮'); hamibot.exit(); } -
配置参数化脚本(推荐)
使用「脚本配置」功能,让非开发者也能修改变量(如账号密码),无需改代码。 -
UI 模式界面(高级)
若需自定义弹窗或交互界面,可在脚本首行加上"ui";并使用 XML 布局。
必读资源
- 📚 Hamibot 开发文档:所有 API 和示例都在这里。
- 💬 社区交流:前往官网论坛或项目页参与讨论。
- 🛠️ 错误排查:确保已授权“悬浮窗”、“存储”、“无障碍”权限。
你现在就可以尝试写一个最简单的“打开应用”脚本,成功运行后逐步增加复杂度。如果你有具体想实现的功能(比如自动打卡、抢券、消息监控等),我可以为你提供定制化的脚本模板。
ℹ️ 本回答由 AI 生成,内容仅供参考