Col*_*mou 36 javascript ocr cordova visual-studio-2013 visual-studio-cordova
我目前正在开发一个Windows 8.1应用程序,我正在使用Web语言,主要是jQuery(Cordova类型项目),因为它可能在其他平台上使用.我需要使用Microsoft OCR库(不是Tesseract或任何其他的,我知道它们,但我现在真的需要使用这个),以便分析图像并在我的应用程序中使用提取的文本.
我从MSDN下载了JavaScript示例应用程序并启动了它:它完全正常工作(当然在VS 2013中安装OCR插件之后).
我现在正在尝试将OCR引擎集成到我的应用程序中(我也在我的项目中安装了OCR插件),但它根本不起作用.事实上,当我尝试在我的机器上启动我的应用程序时,执行失败并返回以下错误消息:
ms-appx://io.cordova.blankcordovaapp2/www/scripts/myscript.js第11行第5行无法管理的异常
0x800a1391 - JavaScript执行错误:"WindowsPreview"未定义"
这是代码的"错误"部分(它位于我的脚本的最开头):
$(document).ready(function () {
"use strict";
// Keep objects in-scope across the lifetime of the scenario.
var FileToken = "";
// Define namespace and API aliases.
var FutureAccess = Windows.Storage.AccessCache.StorageApplicationPermissions.futureAccessList;
// Should be initialising the OCR engine
var OCR = WindowsPreview.Media.Ocr;
var ocrEngine = new OCR.OcrEngine(OCR.OcrLanguage.french);
document.addEventListener("deviceready", onDeviceReady, false);
Run Code Online (Sandbox Code Playgroud)
我尝试以与在Microsoft OCR样本中完成相同的方式初始化OCR引擎.VS似乎没有找到WindowsPreview.Media.Ocr应该是,根据官方文档:
用于Windows运行时的Microsoft OCR库包含WindowsPreview.Media.Ocr命名空间.该库作为NuGet包分发 - 它不包含在Windows软件开发工具包(SDK)中.
我确实使用NuGet命令行在项目中安装了插件,因此我不知道为什么它没有被识别并且无法初始化.
在此先感谢您的帮助,如果我不够清楚,请不要犹豫,询问更多细节.
这看起来像是 VS Tools for Apache Cordova (TACO) 问题。
作为解决方法,您可以打开platforms\windows\CordovaApp.sln,将体系结构切换到 x64,将 Nuget 包添加到 CordovaApp.Windows 项目引用中,保存(由于 PreBuild 事件中的问题,构建将失败:
<PreBuildEvent>
cd /d $(MSBuildThisFileDirectory)
node -e "require('C:\\Users\\{username}\\AppData\\Roaming\\npm\\node_modules\\vs-tac\\lib\\hooks.js').updateAppxManifest('C:\\ocrTest\\ocrTest\\platforms\\windows','C:\\ocrTest\\ocrTest\\platforms\\windows\\..\\..\\')"
</PreBuildEvent>
Run Code Online (Sandbox Code Playgroud)
您也可以尝试暂时清除它以启用基础项目的构建)。
然后打开父 Cordova 项目 - 它现在应该可以工作了。
这仅适用于一种架构,但对于 ARM 和 Windows Phone,您可能需要另一个副本(将 CordovaApp.Phone 设置为启动项目,向其中添加 Nuget 包并切换到 ARM)。
注意:我在 VS 2015 和 Cordova Tools upd.1 上对此进行了测试。
| 归档时间: |
|
| 查看次数: |
1450 次 |
| 最近记录: |