回答
使用以下代码可将OCR识别后的文本复制到系统剪贴板:
// 文档地址 https://docs.hamibot.com/
auto.waitFor(); // 等待无障碍服务
if (!requestScreenCapture()) {
toastLog('请授予屏幕截图权限!');
hamibot.exit();
}
// 截取屏幕并识别
const img = captureScreen();
const textResult = ocr.recognizeText(img);
// 将识别结果复制到剪贴板
setClip(textResult);
toastLog('已复制到剪贴板:' + textResult);
注意事项:
- 安卓10及以上系统需要先将Hamibot切换到前台再执行复制操作
ocr.recognizeText()
仅返回纯文本内容setClip()
会直接覆盖系统剪贴板内容- 建议在代码中添加异常处理机制:
try {
const text = ocr.recognizeText(img);
setClip(text);
} catch(e) {
toastLog('操作失败:' + e);
}
补充回答 1
根据现有文档,Hamibot无法直接调用微信发送接口。但可通过以下方案实现OCR识别文本的微信发送:
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
if (!requestScreenCapture()) {
toastLog('请授予屏幕截图权限!');
hamibot.exit();
}
// 截图并OCR识别
const img = captureScreen();
const text = ocr.recognizeText(img);
// 复制到剪贴板
setClip(text);
toastLog('已复制识别内容:' + text);
// 启动微信(需手动完成发送操作)
app.startActivity({
packageName: "com.tencent.mm",
className: "com.tencent.mm.ui.LauncherUI"
});
toastLog('请手动打开微信聊天窗口并粘贴发送');
实现原理说明:
- 使用
ocr.recognizeText()
提取纯文本 - 通过
setClip()
设置系统剪贴板 - 用
app.startActivity()
启动微信主界面
注意事项:
- 微信版本需为8.0.33及以上
- 安卓12需在后台运行Hamibot时保持前台服务
- 需手动完成以下操作:
- 长按微信聊天输入框选择「粘贴」
- 点击发送按钮
- 微信的防自动化机制可能导致自动粘贴失败,建议:
// 添加延迟避免触发反作弊机制 sleep(2000); gesture(1000, [500, 1800], [500, 300]); // 模拟上滑手势返回桌面 app.launch("com.tencent.mm"); // 改为显式启动
替代方案:
若需要完整自动化流程,建议通过微信「文件传输助手」将文本发送到Hamibot专用邮箱,再使用 app.sendEmail()
功能转发:邮件发送示例
ℹ️ 本回答由 AI 生成,内容仅供参考