YYPOST群发软件 发表于 6 天前

loadDex 加载插件和TomatoOCR实例演示

<span style="font-family: &quot;Microsoft Yahei&quot;, Hei, Tahoma, SimHei, sans-serif; font-size: 22px; font-weight: 700;">loadDex 加载插件和TomatoOCR实例演示</span><p></p><div><ne-clipboard data="%7B%22type%22%3A%22fragment%22%2C%22name%22%3A%22%23fragment%22%2C%22children%22%3A%5B%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uf2e2704b%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u533ffcf7%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E8%AF%B4%E6%98%8E%3A%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E5%AE%89%E5%8D%93studio%20%E5%BC%80%E5%8F%91%E5%87%BAapk%2Cjar%2C%E6%88%96%E8%80%85dex%E4%BD%BF%E7%94%A8%E6%AD%A4%E6%96%B9%E6%B3%95%E5%8A%A0%E8%BD%BD%E6%A8%A1%E5%9D%97%2C%5Cn%E6%B3%A8%E6%84%8F%3A%E6%8F%92%E4%BB%B6%E7%9B%B4%E6%8E%A5%E6%94%BE%E5%88%B0%E6%8F%92%E4%BB%B6%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%84%B6%E5%90%8E%E4%B8%8A%E4%BC%A0%E5%88%B0%E6%89%8B%E6%9C%BA%5Cn%E8%8B%B1%E6%96%87%E6%96%B9%E6%B3%95%3A%20loadDex(plugin)%EF%BC%8C%E5%8A%A0%E8%BD%BD%E6%8F%92%E4%BB%B6%E5%88%B0%E7%B3%BB%E7%BB%9F%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u35952c38%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u2d420175%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E5%8F%82%E6%95%B0%EF%BC%9A%5Cn%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u5304224e%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22plugin%3A%E6%8F%92%E4%BB%B6%E5%90%8D%E7%A7%B0%E4%BE%8B%E5%A6%82%E5%AF%BC%E5%85%A5%E7%9A%84%E6%8F%92%E4%BB%B6%E4%B8%BA%20p1.dex%2C%E5%88%99%E5%8F%82%E6%95%B0%E5%90%8D%E5%B0%B1%E5%A1%AB%E5%86%99%20loadPlugin(%E2%80%98p1.dex%E2%80%99)%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ub93285b0%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u42ed62d6%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E6%A1%88%E4%BE%8B%3A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22ufe0ccd3d%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22i4gG4%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22%2F%2F%E5%AF%BC%E5%85%A5dex%E6%A8%A1%E5%9D%97%5Cnrhino.loadDex('p1.dex')%5Cn%5Cn%2F%2F%E5%AF%BC%E5%85%A5apk%E6%A8%A1%E5%9D%97%5Cnrhino.loadDex('demo.apk')%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22One%20Dark%20Pro%22%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22h2-importclass-%22%2C%22name%22%3A%22h2%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u6fc83007%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%7D%2C%22data%22%3A%22importClass%20%E5%AF%BC%E5%85%A5%E6%8F%92%E4%BB%B6%E4%B8%AD%E7%9A%84%E7%B1%BB%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uae04c008%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u6dc02ed4%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E6%96%B9%E6%B3%95%E8%AF%B4%E6%98%8E%3A%E9%80%9A%E8%BF%87%E8%BF%99%E4%B8%AA%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E5%AF%BC%E5%85%A5%E6%8F%92%E4%BB%B6%E9%87%8C%E7%BC%96%E5%86%99%E5%A5%BD%E7%9A%84%E7%B1%BB%5Cn%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u0052b186%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E8%8B%B1%E6%96%87%E6%96%B9%E6%B3%95%3AimportClass(class)%3B%5Cn%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u81fcd105%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E4%B8%AD%E6%96%87%E6%96%B9%E6%B3%95%3A%E5%AF%BC%E5%85%A5%E7%B1%BB(%E7%B1%BB%E5%9C%B0%E5%9D%80%2C%E7%B1%BB%E5%88%AB%E5%90%8D)%3B%5Cn%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u5da08552%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E5%8F%82%E6%95%B0%3A%5Cn%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u59163742%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22class%3A%E7%B1%BB%E5%9C%B0%E5%9D%80%20%E4%BE%8B%E5%A6%82%20com.autoapp.pluginsdemo.demo%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u14a2fd65%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u2a5298ed%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E6%A1%88%E4%BE%8B%3A%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u32613a2a%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22CqBqH%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22%2F%2F%E5%AF%BC%E5%85%A5%E6%8F%92%E4%BB%B6%E6%96%87%E4%BB%B6%5Cnrhino.loadDex('demo.apk')%5Cn%2F%2F%E5%A6%82%E6%9E%9C%E9%9C%80%E8%A6%81%E5%BC%95%E7%94%A8%E5%A4%9A%E4%B8%AAapk%20%E9%9C%80%E8%A6%81%E5%8A%A0%E4%B8%8A%E7%B1%BB%E5%AF%BC%E5%85%A5%5Cnrhino.loadClass(%5C%22com.autoapp.pluginsdemo.demo%5C%22)%5Cn%2F%2F%E5%BC%95%E7%94%A8%E7%B1%BB%5CnimportClass(com.autoapp.pluginsdemo.demo)%3B%5Cnvar%20demo1%3Dnew%20demo()%3B%5Cnprintl(demo1.hello())%3B%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22One%20Dark%20Pro%22%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u037be31e%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22uc145ec90%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%EF%BC%9A%5Cn%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ucace8ae7%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%221.%E4%B8%8B%E8%BD%BD%5Cn%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u1d32ee16%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E9%93%BE%E6%8E%A5%3A%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u87a0d80b%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%20%22%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u02591e68%22%2C%22name%22%3A%22link%22%2C%22attrs%22%3A%7B%22src%22%3A%22https%3A%2F%2Fwww.123pan.com%2Fs%2FNiUnjv-V8sg3.html%22%2C%22external%22%3Atrue%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22udcabda42%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(65%2C%20131%2C%20196)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22https%3A%2F%2Fwww.123pan.com%2Fs%2FNiUnjv-V8sg3.html%22%7D%5D%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u0989022d%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%5Cn%22%7D%2C%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u1c7d318e%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E6%8F%90%E5%8F%96%E7%A0%81%3A%20qhbz%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uc49baad5%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22ufd610208%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%222.%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E4%BB%A3%E7%A0%81%E8%AF%86%E5%88%ABOCR%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u667b0c48%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22WQZKS%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22%2F%2F%E5%8A%A0%E8%BD%BD%E6%8F%92%E4%BB%B6%5Cn%5Cntry%7B%5Cn%20%20%20%20%20rhino.loadDex('TomatoOCR.apk')%5Cn%20%20%20%20%20sleep.second(1)%3B%5Cn%20%20%20%20%20%2F%2F%E5%AF%BC%E5%85%A5%E7%B1%BB%5Cn%20%20%20%20%20rhino.loadClass(%5C%22com.tomato.ocr.aw.OCRApi%5C%22)%5Cn%20%20%20%20%20importClass(com.tomato.ocr.aw.OCRApi)%3B%5Cn%7Dcatch(e)%7B%5Cn%20%20%20%20%20rhino.clearDex()%3B%5Cn%20%20%20%20%20rhino.loadDex('TomatoOCR.apk')%5Cn%20%20%20%20%20sleep.second(1)%3B%5Cn%20%20%20%20%20importClass(com.tomato.ocr.aw.OCRApi)%5Cn%7D%5Cn%5Cn%5Cn%5Cn%5Cn%2F%2F%E5%88%9D%E5%A7%8B%E5%8C%96%5Cnvar%20ocr%3D%20new%20OCRApi()%3B%5Cnocr.setContext(context)%3B%5Cn%5Cn%2F%2F%E6%88%AA%E5%9B%BE%E5%92%8C%E8%AF%86%E5%88%AB%5Cnvar%20img%3Dscreen.screenShot(screen.getScreenWidth()%2F2%2Cscreen.getScreenHeight()%2F2%2C100)%5Cnprintl(img)%5Cnvar%20res%3Docr.ocrBase64(img.toBase64()%2C-1)%3B%5Cnprintl(res)%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22One%20Dark%20Pro%22%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22uaa690bb2%22%2C%22name%22%3A%22p%22%2C%22attrs%22%3A%7B%22alignment%22%3A%22left%22%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22text%22%2C%22id%22%3A%22u73cec177%22%2C%22name%22%3A%22%23text%22%2C%22attrs%22%3A%7B%22color%22%3A%22rgb(51%2C%2051%2C%2051)%22%2C%22fontsize%22%3A14%7D%2C%22data%22%3A%22%E4%BB%A5%E4%B8%8B%E6%98%AF%E7%BD%91%E5%8F%8B%E6%8F%90%E4%BE%9B%E7%9A%84%E5%B0%81%E8%A3%85%E6%A1%88%E4%BE%8B%22%7D%5D%7D%2C%7B%22type%22%3A%22element%22%2C%22id%22%3A%22u56218bbb%22%2C%22name%22%3A%22hole%22%2C%22attrs%22%3A%7B%7D%2C%22children%22%3A%5B%7B%22type%22%3A%22card%22%2C%22id%22%3A%22KRPVY%22%2C%22name%22%3A%22codeblock%22%2C%22attrs%22%3A%7B%22value%22%3A%7B%22mode%22%3A%22javascript%22%2C%22code%22%3A%22%E5%A4%8D%E5%88%B6var%20TM%20%3D%20%7B%7D%3B%5Cn%5Cn%5Cn%2F*%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ocr%E7%B1%BB%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D*%2F%5Cn%2F%2F%E5%8A%A0%E8%BD%BD%E6%8F%92%E4%BB%B6%5Cn%2F%2Frhino.loadDex('TomatoOCR.apk'%2C%5C%22armeabi-v7a%5C%22)%5Cnrhino.loadDex('TomatoOCR.apk')%5Cn%2F%2F%E5%AF%BC%E5%85%A5%E7%B1%BB%5Cntry%20%7B%5Cn%20%20%2F%2F%E5%A4%9A%E6%8F%92%E4%BB%B6%E8%B0%83%E7%94%A8%E5%BF%85%E9%A1%BB%E5%AF%BC%E5%85%A5%E7%B1%BB%5Cn%20%20rhino.loadClass('com.tomato.ocr.aw.OCRApi')%3B%5Cn%20%20importClass(com.tomato.ocr.aw.OCRApi)%5Cn%7D%20catch%20(error)%20%7B%5Cn%20%20FZ.printll(error)%5Cn%7D%5Cn%5Cn%5Cnvar%20ocr%20%3D%20new%20OCRApi()%3B%5Cn%5Cnlet%20rec_type%20%3D%20%5C%22ch-3.0%5C%22%3B%5Cn%2F%2F%E6%B3%A8%EF%BC%9Ach%E3%80%81ch-2.0%E3%80%81ch-3.0%E7%89%88%E5%8F%AF%E5%88%87%E6%8D%A2%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%AF%B9%E9%83%A8%E5%88%86%E5%9C%BA%E6%99%AF%E5%8F%AF%E9%80%82%E5%BD%93%E8%B0%83%E6%95%B4%5Cn%2F%2F--%20%5C%22ch%5C%22%EF%BC%9A%E6%99%AE%E9%80%9A%E4%B8%AD%E8%8B%B1%E6%96%87%E8%AF%86%E5%88%AB%EF%BC%8C1.0%E7%89%88%E6%A8%A1%E5%9E%8B%5Cn%2F%2F--%20%5C%22ch-2.0%5C%22%EF%BC%9A%E6%99%AE%E9%80%9A%E4%B8%AD%E8%8B%B1%E6%96%87%E8%AF%86%E5%88%AB%EF%BC%8C2.0%E7%89%88%E6%A8%A1%E5%9E%8B%5Cn%2F%2F--%20%5C%22ch-3.0%5C%22%EF%BC%9A%E6%99%AE%E9%80%9A%E4%B8%AD%E8%8B%B1%E6%96%87%E8%AF%86%E5%88%AB%EF%BC%8C3.0%E7%89%88%E6%A8%A1%E5%9E%8B%5Cn%2F%2F--%20%5C%22cht%5C%22%EF%BC%9A%E7%B9%81%E4%BD%93%EF%BC%8C%5C%22japan%5C%22%EF%BC%9A%E6%97%A5%E8%AF%AD%EF%BC%8C%5C%22korean%5C%22%EF%BC%9A%E9%9F%A9%E8%AF%AD%5Cnocr.setContext(context%2C%20rec_type)%3B%5Cn%5Cn%2F%2F%20%E8%AF%95%E7%94%A8%E7%89%88license%E4%BB%8E%E7%BE%A4%E4%B8%AD%E8%8E%B7%E5%8F%96%E6%88%96%E8%80%85%E7%BD%91%E7%9B%98%E4%B8%AD%E8%8E%B7%E5%8F%96%5Cnlet%20license%20%3D%20%5C%22%E8%87%AA%E5%B7%B1%E6%89%BE%E4%BD%9C%E8%80%85%E8%8E%B7%E5%8F%96%5C%22%5Cnlet%20flag%20%3D%20ocr.setLicense(license)%3B%5Cn%2F%2Fprintl(flag)%5Cn%2F%2F%20flag%3D%20-1%3A%20%E6%97%A0%E6%95%88license%5Cn%2F%2F%20flag%3D%200%20%3A%20%E8%BF%87%E6%9C%9Flicense%5Cn%2F%2F%20flag%3D%201%20%E6%88%96%20%E5%88%B0%E6%9C%9F%E6%97%A5%E6%9C%9F%20%3A%20%E8%AF%95%E7%94%A8license%E6%88%96%E6%AD%A3%E5%BC%8Flicense%5Cn%5Cnocr.setDetBoxType(%5C%22rect%5C%22)%20%20%2F%2F%20%E8%B0%83%E6%95%B4%E6%A3%80%E6%B5%8B%E6%A8%A1%E5%9E%8B%E6%A3%80%E6%B5%8B%E6%96%87%E6%9C%AC%E5%8F%82%E6%95%B0-%20%E9%BB%98%E8%AE%A4%5C%22rect%5C%22%3A%20%E7%94%B1%E4%BA%8E%E6%89%8B%E6%9C%BA%E4%B8%8A%E6%88%AA%E5%9B%BE%E6%96%87%E6%9C%AC%E5%9D%87%E4%B8%BA%E7%9F%A9%E5%BD%A2%E6%96%87%E6%9C%AC%EF%BC%8C%E4%BB%8E%E8%AF%A5%E7%89%88%E6%9C%AC%E4%B9%8B%E5%90%8E%E5%9D%87%E6%94%B9%E4%B8%BArect%EF%BC%8C%5C%22quad%5C%22%EF%BC%9A%E5%8F%AF%E5%87%86%E7%A1%AE%E6%A3%80%E6%B5%8B%E5%80%BE%E6%96%9C%E6%96%87%E6%9C%AC%5Cnocr.setDetUnclipRatio(1.9)%20%20%2F%2F%20%E8%B0%83%E6%95%B4%E6%A3%80%E6%B5%8B%E6%A8%A1%E5%9E%8B%E6%A3%80%E6%B5%8B%E6%96%87%E6%9C%AC%E5%8F%82%E6%95%B0%20-%20%E9%BB%98%E8%AE%A41.9%3A%20%E5%80%BC%E8%8C%83%E5%9B%B41.6-2.5%E4%B9%8B%E9%97%B4%5Cnocr.setRecScoreThreshold(0.3)%20%20%2F%2F%20%E8%AF%86%E5%88%AB%E5%BE%97%E5%88%86%E8%BF%87%E6%BB%A4%20-%20%E9%BB%98%E8%AE%A40.1%EF%BC%8C%E5%80%BC%E8%8C%83%E5%9B%B40.1-0.9%E4%B9%8B%E9%97%B4%5Cnocr.setReturnType(%5C%22json%5C%22)%5Cn%2F%2F%20%E8%BF%94%E5%9B%9E%E7%B1%BB%E5%9E%8B%20-%20%E9%BB%98%E8%AE%A4%5C%22json%5C%22%3A%20%E5%8C%85%E5%90%AB%E5%BE%97%E5%88%86%E3%80%81%E5%9D%90%E6%A0%87%E5%92%8C%E6%96%87%E5%AD%97%EF%BC%9B%5Cn%2F%2F%5C%22text%5C%22%EF%BC%9A%E7%BA%AF%E6%96%87%E5%AD%97%EF%BC%9B%5Cn%2F%2F%5C%22num%5C%22%EF%BC%9A%E7%BA%AF%E6%95%B0%E5%AD%97%EF%BC%9B%5Cn%2F%2F%E8%87%AA%E5%AE%9A%E4%B9%89%E8%BE%93%E5%85%A5%E6%83%B3%E8%A6%81%E8%BF%94%E5%9B%9E%E7%9A%84%E6%96%87%E6%9C%AC%EF%BC%9A%5C%22.%EF%BF%A51234567890%5C%22%EF%BC%8C%E4%BB%85%E5%8F%AA%E8%BF%94%E5%9B%9E%E8%BF%99%E4%BA%9B%E5%86%85%E5%AE%B9%5Cn%5Cnvar%20type%20%3D%203%3B%5Cn%2F%2F%20type%20%E5%8F%AF%E4%BC%A0%E5%8F%AF%E4%B8%8D%E4%BC%A0%5Cn%2F%2F%20type%3D0%20%3A%20%E5%8F%AA%E6%A3%80%E6%B5%8B%5Cn%2F%2F%20type%3D1%20%3A%20%E6%96%B9%E5%90%91%E5%88%86%E7%B1%BB%20%2B%20%E8%AF%86%E5%88%AB%5Cn%2F%2F%20type%3D2%20%3A%20%E5%8F%AA%E8%AF%86%E5%88%AB%5Cn%2F%2F%20type%3D3%20%3A%20%E6%A3%80%E6%B5%8B%20%2B%20%E8%AF%86%E5%88%AB%5Cn%5Cn%2F%2F%20%E5%8F%AA%E6%A3%80%E6%B5%8B%E6%96%87%E5%AD%97%E4%BD%8D%E7%BD%AE%EF%BC%9Atype%3D0%5Cn%2F%2F%20%E5%85%A8%E5%B1%8F%E8%AF%86%E5%88%AB%3A%20type%3D3%E6%88%96%E8%80%85%E4%B8%8D%E4%BC%A0type%5Cn%2F%2F%20%E6%88%AA%E5%8F%96%E5%8D%95%E8%A1%8C%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB%EF%BC%9Atype%3D1%E6%88%96%E8%80%85type%3D2%5Cn%2F*%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ocr%E7%B1%BB%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D*%2F%5Cn%5Cn%2F*%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ocr%E5%B0%81%E8%A3%85%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D*%2F%5Cn%2F%2F%20tmstr%3D%5C%22%5C%22%20%20%20%20%E8%AF%86%E5%88%AB%E7%9A%84%E6%96%87%E5%AD%97%5Cn%2F%2F%20tmsize%3D%5B%5D%20%20%20%20%E8%AF%86%E5%88%AB%E7%99%BE%E5%88%86%E6%AF%94%E5%8C%BA%E5%9F%9F%5Cn%2F%2F%20tmclick%3Dtrue%2Ffalse%20%20%20%E6%98%AF%E5%90%A6%E7%82%B9%E5%87%BB%5Cn%2F%2F%20tmcoor1%2C%20tmcoor2%20%20%20%E5%81%8F%E7%A7%BB%E5%9D%90%E6%A0%87%E8%8C%83%E5%9B%B4%5Cn%2F%2F%20tmslee%20%20%20%20%20%E7%82%B9%E5%87%BB%E5%90%8E%E4%BC%91%E6%81%AF%E6%97%B6%E9%97%B4%5CnTM.tmocr%E8%AF%86%E5%88%AB%20%3D%20function%20(tmstr%2C%20tmsize%2C%20tmclick%2C%20tmcoor1%2C%20tmcoor2%2C%20tmslee)%20%7B%5Cn%20%20%2F%2F%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5%E5%8F%96%E6%95%B4%EF%BC%8C%E7%99%BE%E5%88%86%E6%AF%94%E5%9D%90%E6%A0%87%E8%BD%AC%E7%9C%9F%E5%AE%9E%E5%9D%90%E6%A0%87%5Cn%20%20var%20tma%20%3D%20Math.round(tmsize%5B0%5D%20*%20wdh)%5Cn%20%20var%20tmb%20%3D%20Math.round(tmsize%5B1%5D%20*%20hgt)%5Cn%20%20%2F%2Fvar%20tmc%20%3D%20Math.round(tmsize%5B2%5D%20*%20wdh)%5Cn%20%20%2F%2Fvar%20tmd%20%3D%20Math.round(tmsize%5B3%5D%20*%20hgt)%5Cn%20%20%2F%2Fprintl(tmsize%5B0%5D)%5Cn%20%20%2F%2Fprintl(tma)%5Cn%20%20var%20img0%20%3D%20screen.screenShotFull()%5Cn%20%20sleep.millisecond(10)%5Cn%20%20%2F%2F%E7%99%BE%E5%88%86%E6%AF%94%E8%A3%81%E5%89%AA%5Cn%20%20var%20img%20%3D%20img0.cutImagePercent(tmsize%5B0%5D%2C%20tmsize%5B1%5D%2C%20tmsize%5B2%5D%2C%20tmsize%5B3%5D)%5Cn%20%20sleep.millisecond(10)%5Cn%20%20%2F%2Fvar%20img%20%3D%20screen.screenShot(screen.getScreenWidth()%20%2F%202%2C%20screen.getScreenHeight()%20%2F%202%2C%20100)%5Cn%20%20var%20result3%20%3D%20ocr.ocrBase64(img.toBase64()%2C%20type)%3B%5Cn%20%20%2F%2Fprintl(result3)%5Cn%20%20try%20%7B%5Cn%20%20%20%20if%20(result3%20!%3D%20%5C%22%5C%22)%20%7B%5Cn%20%20%20%20%20%20var%20result3%20%3D%20JSON.parse(result3)%5Cn%20%20%20%20%20%20var%20point%20%3D%20this.findStrCenter(result3%2C%20tmstr)%2F%2F%E8%AF%86%E5%88%AB%5Cn%20%20%20%20%20%20%2F%2Fprintl(point%5B0%5D%2C%20point%5B1%5D)%5Cn%20%20%20%20%20%20if%20(point%5B0%5D%20%3E%3D%200)%20%7B%5Cn%20%20%20%20%20%20%20%20FZ.printll(tmstr)%5Cn%20%20%20%20%20%20%20%20var%20tme%20%3D%20point%5B0%5D%20%2B%20tma%5Cn%20%20%20%20%20%20%20%20var%20tmf%20%3D%20point%5B1%5D%20%2B%20tmb%5Cn%20%20%20%20%20%20%20%20printl(tme%2C%20tmf)%5Cn%20%20%20%20%20%20%20%20if%20(tmclick%20%3D%3D%20true)%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20hid.click(tme%20%2B%20rand.randNumber(tmcoor1%2C%20tmcoor2)%2C%20tmf%20%2B%20rand.randNumber(tmcoor1%2C%20tmcoor2))%5Cn%20%20%20%20%20%20%20%20%20%20sleep.millisecond(tmslee)%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%5Cn%20%20%20%20%20%20%20%20img0.recycle()%5Cn%20%20%20%20%20%20%20%20img.recycle()%5Cn%20%20%20%20%20%20%20%20return%20true%5Cn%20%20%20%20%20%20%7D%20else%20%7B%5Cn%5Cn%20%20%20%20%20%20%20%20img0.recycle()%5Cn%20%20%20%20%20%20%20%20img.recycle()%5Cn%20%20%20%20%20%20%20%20return%20false%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%20catch%20(err)%20%7B%5Cn%20%20%20%20printl(err)%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn%2F%2F%E5%8C%BA%E5%9F%9F%E6%89%BE%E5%AD%97%E8%BF%94%E5%9B%9E%E5%9D%90%E6%A0%87%5CnTM.tmocr%E8%AF%86%E5%88%AB%E5%9D%90%E6%A0%87%20%3D%20function%20(tmstr%2C%20tmsize)%20%7B%5Cn%20%20%2F%2F%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5%E5%8F%96%E6%95%B4%EF%BC%8C%E7%99%BE%E5%88%86%E6%AF%94%E5%9D%90%E6%A0%87%E8%BD%AC%E7%9C%9F%E5%AE%9E%E5%9D%90%E6%A0%87%5Cn%20%20var%20tma%20%3D%20Math.round(tmsize%5B0%5D%20*%20wdh)%5Cn%20%20var%20tmb%20%3D%20Math.round(tmsize%5B1%5D%20*%20hgt)%5Cn%5Cn%20%20var%20img0%20%3D%20screen.screenShotFull()%5Cn%20%20%20%20sleep.millisecond(10)%5Cn%20%20%20%20%2F%2F%E7%99%BE%E5%88%86%E6%AF%94%E8%A3%81%E5%89%AA%5Cn%20%20%20%20var%20img%20%3D%20img0.cutImagePercent(tmsize%5B0%5D%2C%20tmsize%5B1%5D%2C%20tmsize%5B2%5D%2C%20tmsize%5B3%5D)%5Cn%20%20%20%20sleep.millisecond(10)%5Cn%20%20%20%20%2F%2Fvar%20img%20%3D%20screen.screenShot(screen.getScreenWidth()%20%2F%202%2C%20screen.getScreenHeight()%20%2F%202%2C%20100)%5Cn%20%20%20%20var%20result3%20%3D%20ocr.ocrBase64(img.toBase64()%2C%20type)%3B%5Cn%20%20%20%20%2F%2Fprintl(result3)%5Cn%20%20%20%20try%20%7B%5Cn%20%20%20%20%20%20%20%20if%20(result3%20!%3D%20%5C%22%5C%22)%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20result3%20%3D%20JSON.parse(result3)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20point%20%3D%20this.findStrCenter(result3%2C%20tmstr)%2F%2F%E8%AF%86%E5%88%AB%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fprintl(point%5B0%5D%2C%20point%5B1%5D)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20if%20(point%5B0%5D%20%3E%3D%200)%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20FZ.printll(tmstr)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tme%20%3D%20point%5B0%5D%20%2B%20tma%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tmf%20%3D%20point%5B1%5D%20%2B%20tmb%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20printl(tme%2C%20tmf)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20poin%20%3D%20%5Btme%2C%20tmf%5D%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20img0.recycle()%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20img.recycle()%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20poin%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20img0.recycle()%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20img.recycle()%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20false%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%20catch%20(err)%20%7B%5Cn%20%20%20%20%20%20%20%20printl(err)%5Cn%20%20%20%20%7D%5Cn%7D%5Cn%5Cn%5CnTM.findStrCenter%20%3D%20function%20(result_list%2C%20data)%20%7B%5Cn%20%20%20%20all_result%20%3D%20%5B%5D%5Cn%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%20result_list.length%3B%20i%2B%2B)%20%7B%5Cn%20%20%20%20%20%20%20%20var%20words%20%3D%20result_list%5Bi%5D%5B%5C%22words%5C%22%5D%5Cn%20%20%20%20%20%20%20%20var%20location%20%3D%20result_list%5Bi%5D%5B%5C%22location%5C%22%5D%5Cn%20%20%20%20%20%20%20%20var%20pos%20%3D%20words.indexOf(data)%3B%5Cn%20%20%20%20%20%20%20%20if%20(pos%20%3E%3D%200)%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20let%20w_len%20%3D%20words.length%5Cn%20%20%20%20%20%20%20%20%20%20%20%20let%20d_len%20%3D%20data.length%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20let%20x1%20%3D%20location%5B0%5D%5B0%5D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20let%20y1%20%3D%20location%5B0%5D%5B1%5D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20let%20x2%20%3D%20location%5B2%5D%5B0%5D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20let%20y2%20%3D%20location%5B2%5D%5B1%5D%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20let%20x%20%3D%20Math.floor((x2%20-%20x1)%20%2F%20w_len%20*%20(d_len%20%2B%202%20*%20pos)%20%2F%202%20%2B%20x1)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20let%20y%20%3D%20Math.floor((y2%20-%20y1)%20%2F%202%20%2B%20y1)%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Bx%2C%20y%5D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%20%20return%20%5B-1%2C%20-1%5D%5Cn%7D%5Cn%5Cn%2F%2F%E5%86%85%E5%AD%98%E9%87%8A%E6%94%BE%5Cn%2F%2Focr.end()%5Cn%5Cn%2F*%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20ocr%E5%B0%81%E8%A3%85%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D*%2F%22%2C%22autoWrap%22%3Afalse%2C%22lineNumbers%22%3Atrue%2C%22heightLimit%22%3Atrue%2C%22collapsed%22%3Afalse%2C%22hideToolbar%22%3Afalse%2C%22name%22%3A%22%22%2C%22tabSize%22%3Anull%2C%22indentWithTab%22%3Afalse%2C%22lightLines%22%3A%5B%5D%2C%22foldLines%22%3A%5B%5D%2C%22theme%22%3A%22One%20Dark%20Pro%22%2C%22customStyle%22%3A%5B%5D%2C%22__spacing%22%3A%22both%22%7D%2C%22cardType%22%3A%22block%22%7D%2C%22cardType%22%3A%22block%22%7D%5D%7D%5D%2C%22attrs%22%3A%7B%7D%7D" source="https%3A%2F%2Fwww.yuque.com%2Faiwork%2Fnba2pr%2Faar621krml6zl7sn"></ne-clipboard><div class="lake-content" typography="classic"><p id="uf2e2704b" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);">说明:可以使用安卓studio 开发出apk,jar,或者dex使用此方法加载模块,<br>注意:插件直接放到插件文件夹中然后上传到手机<br>英文方法: loadDex(plugin),加载插件到系统</span></p><p id="u35952c38" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);">参数:</span></p><p id="u35952c38" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);"><br></span><span class="ne-text" style="color: rgb(51, 51, 51);">plugin:插件名称例如导入的插件为 p1.dex,则参数名就填写 loadPlugin(‘p1.dex’)</span></p><p id="ub93285b0" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);">案例:</span></p><pre data-language="javascript" id="i4gG4" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>//导入dex模块
rhino.loadDex('p1.dex')

//导入apk模块
rhino.loadDex('demo.apk')</code></pre><h2 id="h2-importclass-" style="font-size: 24px; line-height: 32px; margin-top: 21px; margin-bottom: 5px;"><span class="ne-text" style="color: rgb(51, 51, 51)">importClass 导入插件中的类</span></h2><p id="uae04c008" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);">方法说明:通过这个方法可以导入插件里编写好的类<br></span><span class="ne-text" style="color: rgb(51, 51, 51);">英文方法:importClass(class);<br></span><span class="ne-text" style="color: rgb(51, 51, 51);">中文方法:导入类(类地址,类别名);<br></span><span class="ne-text" style="color: rgb(51, 51, 51);">参数:<br></span><span class="ne-text" style="color: rgb(51, 51, 51);">class:类地址 例如 com.autoapp.pluginsdemo.demo</span></p><p id="u14a2fd65" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);">案例:</span></p><pre data-language="javascript" id="CqBqH" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>//导入插件文件
rhino.loadDex('demo.apk')
//如果需要引用多个apk 需要加上类导入
rhino.loadClass("com.autoapp.pluginsdemo.demo")
//引用类
importClass(com.autoapp.pluginsdemo.demo);
var demo1=new demo();
printl(demo1.hello());</code></pre><p id="u037be31e" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);">使用方法:<br></span><span class="ne-text" style="color: rgb(51, 51, 51);">1.下载<br></span><span class="ne-text" style="color: rgb(51, 51, 51);">链接:</span><span class="ne-text" style="color: rgb(51, 51, 51);"> </span><a href="https://www.123pan.com/s/NiUnjv-V8sg3.html" data-href="https://www.123pan.com/s/NiUnjv-V8sg3.html" target="_blank" class="ne-link"><span class="ne-text" style="color: rgb(65, 131, 196);">https://www.123pan.com/s/NiUnjv-V8sg3.html</span></a><span class="ne-text" style="color: rgb(51, 51, 51);"><br></span><span class="ne-text" style="color: rgb(51, 51, 51);">提取码: qhbz</span></p><p id="uc49baad5" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);">2.使用以下代码识别OCR</span></p><pre data-language="javascript" id="WQZKS" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>//加载插件

try{
   rhino.loadDex('TomatoOCR.apk')
   sleep.second(1);
   //导入类
   rhino.loadClass("com.tomato.ocr.aw.OCRApi")
   importClass(com.tomato.ocr.aw.OCRApi);
}catch(e){
   rhino.clearDex();
   rhino.loadDex('TomatoOCR.apk')
   sleep.second(1);
   importClass(com.tomato.ocr.aw.OCRApi)
}




//初始化
var ocr= new OCRApi();
ocr.setContext(context);

//截图和识别
var img=screen.screenShot(screen.getScreenWidth()/2,screen.getScreenHeight()/2,100)
printl(img)
var res=ocr.ocrBase64(img.toBase64(),-1);
printl(res)</code></pre><p id="uaa690bb2" class="ne-p" style="min-height: 24px;"><span class="ne-text" style="color: rgb(51, 51, 51);">以下是网友提供的封装案例</span></p><pre data-language="javascript" id="KRPVY" class="ne-codeblock language-javascript" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959"><code>复制var TM = {};


/*================================== ocr类 ==================================*/
//加载插件
//rhino.loadDex('TomatoOCR.apk',"armeabi-v7a")
rhino.loadDex('TomatoOCR.apk')
//导入类
try {
//多插件调用必须导入类
rhino.loadClass('com.tomato.ocr.aw.OCRApi');
importClass(com.tomato.ocr.aw.OCRApi)
} catch (error) {
FZ.printll(error)
}


var ocr = new OCRApi();

let rec_type = "ch-3.0";
//注:ch、ch-2.0、ch-3.0版可切换使用,对部分场景可适当调整
//-- "ch":普通中英文识别,1.0版模型
//-- "ch-2.0":普通中英文识别,2.0版模型
//-- "ch-3.0":普通中英文识别,3.0版模型
//-- "cht":繁体,"japan":日语,"korean":韩语
ocr.setContext(context, rec_type);

// 试用版license从群中获取或者网盘中获取
let license = "自己找作者获取"
let flag = ocr.setLicense(license);
//printl(flag)
// flag= -1: 无效license
// flag= 0 : 过期license
// flag= 1 或 到期日期 : 试用license或正式license

ocr.setDetBoxType("rect")// 调整检测模型检测文本参数- 默认"rect": 由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本
ocr.setDetUnclipRatio(1.9)// 调整检测模型检测文本参数 - 默认1.9: 值范围1.6-2.5之间
ocr.setRecScoreThreshold(0.3)// 识别得分过滤 - 默认0.1,值范围0.1-0.9之间
ocr.setReturnType("json")
// 返回类型 - 默认"json": 包含得分、坐标和文字;
//"text":纯文字;
//"num":纯数字;
//自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容

var type = 3;
// type 可传可不传
// type=0 : 只检测
// type=1 : 方向分类 + 识别
// type=2 : 只识别
// type=3 : 检测 + 识别

// 只检测文字位置:type=0
// 全屏识别: type=3或者不传type
// 截取单行文字识别:type=1或者type=2
/*================================== ocr类 ==================================*/

/*================================== ocr封装 ==================================*/
// tmstr=""    识别的文字
// tmsize=[]    识别百分比区域
// tmclick=true/false   是否点击
// tmcoor1, tmcoor2   偏移坐标范围
// tmslee   点击后休息时间
TM.tmocr识别 = function (tmstr, tmsize, tmclick, tmcoor1, tmcoor2, tmslee) {
//四舍五入取整,百分比坐标转真实坐标
var tma = Math.round(tmsize * wdh)
var tmb = Math.round(tmsize * hgt)
//var tmc = Math.round(tmsize * wdh)
//var tmd = Math.round(tmsize * hgt)
//printl(tmsize)
//printl(tma)
var img0 = screen.screenShotFull()
sleep.millisecond(10)
//百分比裁剪
var img = img0.cutImagePercent(tmsize, tmsize, tmsize, tmsize)
sleep.millisecond(10)
//var img = screen.screenShot(screen.getScreenWidth() / 2, screen.getScreenHeight() / 2, 100)
var result3 = ocr.ocrBase64(img.toBase64(), type);
//printl(result3)
try {
    if (result3 != "") {
      var result3 = JSON.parse(result3)
      var point = this.findStrCenter(result3, tmstr)//识别
      //printl(point, point)
      if (point &gt;= 0) {
      FZ.printll(tmstr)
      var tme = point + tma
      var tmf = point + tmb
      printl(tme, tmf)
      if (tmclick == true) {
          hid.click(tme + rand.randNumber(tmcoor1, tmcoor2), tmf + rand.randNumber(tmcoor1, tmcoor2))
          sleep.millisecond(tmslee)
      }

      img0.recycle()
      img.recycle()
      return true
      } else {

      img0.recycle()
      img.recycle()
      return false
      }
    }
} catch (err) {
    printl(err)
}
}

//区域找字返回坐标
TM.tmocr识别坐标 = function (tmstr, tmsize) {
//四舍五入取整,百分比坐标转真实坐标
var tma = Math.round(tmsize * wdh)
var tmb = Math.round(tmsize * hgt)

var img0 = screen.screenShotFull()
    sleep.millisecond(10)
    //百分比裁剪
    var img = img0.cutImagePercent(tmsize, tmsize, tmsize, tmsize)
    sleep.millisecond(10)
    //var img = screen.screenShot(screen.getScreenWidth() / 2, screen.getScreenHeight() / 2, 100)
    var result3 = ocr.ocrBase64(img.toBase64(), type);
    //printl(result3)
    try {
      if (result3 != "") {
            var result3 = JSON.parse(result3)
            var point = this.findStrCenter(result3, tmstr)//识别
            //printl(point, point)
            if (point &gt;= 0) {
                FZ.printll(tmstr)
                var tme = point + tma
                var tmf = point + tmb
                printl(tme, tmf)
                var poin =

                img0.recycle()
                img.recycle()
                return poin
            } else {

                img0.recycle()
                img.recycle()
                return false
            }
      }
    } catch (err) {
      printl(err)
    }
}


TM.findStrCenter = function (result_list, data) {
    all_result = []
    for (let i = 0; i &lt; result_list.length; i++) {
      var words = result_list["words"]
      var location = result_list["location"]
      var pos = words.indexOf(data);
      if (pos &gt;= 0) {
            let w_len = words.length
            let d_len = data.length

            let x1 = location
            let y1 = location
            let x2 = location
            let y2 = location

            let x = Math.floor((x2 - x1) / w_len * (d_len + 2 * pos) / 2 + x1)
            let y = Math.floor((y2 - y1) / 2 + y1)

            return
      }
    }
    return [-1, -1]
}

//内存释放
//ocr.end()

/*================================== ocr封装 ==================================*/</code></pre></div></div>
页: [1]
查看完整版本: loadDex 加载插件和TomatoOCR实例演示