OCR识别
使用设备端的 GPU 加速技术识别屏幕指定区域的文字内容,支持多种语言识别。
⚠️ 重要限制
由于 iOS 系统对后台应用有严格的内存限制,内置OCR不适合进行大面积的文档扫描工作。
识别区域过大或频繁识别大区域可能导致:
- 内存占用超限
- 投屏服务崩溃断开
建议:
- ✅ 适用:识别按钮、标题、短文本等小区域文字
- ❌不适用:整页文档扫描、大段落识别、PDF文字提取等
如需进行文档扫描或大面积文字识别,请使用 屏幕推送 接口配合电脑端的OCR服务。
接口说明
接口类型
ocr参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| deviceId | string | 是 | 设备ID |
| rect | array | 是 | 识别区域 [x1, y1, x2, y2] |
返回值
返回一个文本块数组,每个文本块包含:
javascript
[
{
text: "识别到的文字", // 识别的文字内容
boundingBox: { // 文字边界框
x: 100, // 左上角X坐标
y: 100, // 左上角Y坐标
width: 200, // 宽度
height: 50 // 高度
},
confidence: 0.95, // 识别置信度 (0-1)
x: 200, // 文字中心点X坐标
y: 125 // 文字中心点Y坐标
},
// ... 更多文本块
]基本使用
javascript
// 识别屏幕指定区域的文字
const results = await apiInvoke('ocr', {
deviceId: 'P72578581E07',
rect: [100, 100, 500, 200] // 识别区域:左上角(100,100)到右下角(500,200)
});
// 遍历所有识别到的文本块
results.forEach(item => {
console.log(`文字: ${item.text}`);
console.log(`位置: (${item.x}, ${item.y})`);
console.log(`置信度: ${item.confidence}`);
});
// 获取所有文字内容
const allText = results.map(item => item.text).join(' ');
console.log('完整文本:', allText);功能说明
识别区域
rect 参数定义识别区域,格式为 [x1, y1, x2, y2]:
x1, y1- 区域左上角坐标x2, y2- 区域右下角坐标
区域设置建议:
- 区域应包含完整的文字内容
- 避免包含过多背景和干扰元素
- 区域越小,识别速度越快,内存占用越少
- 确保区域在屏幕范围内
- 避免识别过大区域(建议单次识别区域不超过屏幕的1/2)
语言支持
系统会自动检测文字语言,包括但不限于 18+ 种主流语言
使用场景
💡 适用场景
内置OCR适合识别:
- ✅ UI界面的按钮文字、标题、提示
- ✅ 短消息内容、通知文本
- ✅ 游戏内的文字提示、数字信息
- ✅ 表单字段、输入框内容
不适合:
- ❌ 整页文档扫描
- ❌ 长篇文章识别
- ❌ PDF文字提取
- ❌ 大面积连续文字识别
对于文档扫描等场景,建议使用 屏幕推送 接口,将图像发送到电脑端的OCR服务进行处理。