В своей последней статье я рассказал, как собрать компонент WinRT с Dynamsoft Barcode Reader C++ SDK. В этой статье показано, как использовать сгенерированные файлы Dynamsoft.dll и Dynamsoft.winmd в проекте подключаемого модуля Cordova для создания приложений для Windows 10.
Установка
Мое первое приложение для Windows с Cordova
Запустите инструмент командной строки VS 2017.
Установите Кордову:
npm install -g cordova
Создайте новый проект:
cordova create test com.dynamsoft.test Test
Добавьте платформу Windows:
cordova platform add windows
Создайте приложение:
cordova build windows
Вы можете увидеть следующую ошибку:
c:\Prog ram Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\JavaScript\Microsoft.Visual Studio.WJProject.Default.props" was not found.
Ошибка означает, что у вас не установлены SDK и инструменты, относящиеся к JavaScript. Откройте установщик Visual Studio, чтобы проверить его.
Создание плагина Cordova с помощью WinRT и собственных библиотек DLL
Мы можем следовать официальному руководству, чтобы создать базовый плагин Cordova.
Вот мой:
Примечание. Для просмотра файлов .winmd можно использовать ildasm.exe, расположенный в папке C:\Program Files (x86)\Microsoft SDK\Windows\v10.0A\bin\NETFX 4.6.2 Tools.
Файл package.json создается командой NPM:
{
"name": "cordova-windows-barcode",
"version": "0.0.1",
"description": "Cordova Windows barcode",
"cordova": {
"id": "cordova-windows-barcode",
"platforms": [
"windows"
]
},
"keywords": [
"cordova",
"barcode",
"ecosystem:cordova",
"cordova-windows"
],
"author": "Dynamsoft",
"license": "MIT"
}
Настройте модули JavaScript, компонент C++/WinRT и собственные библиотеки DLL в plugin.xml:
Для связи с собственной платформой вызовите cordova.exec в barcode.js:
В barcodeProxy.js используйте средство выбора файлов для загрузки файлов изображений и вызовите decodeFileStream() для считывания штрих-кодов:
Добавьте плагин в свой проект:
cordova plugin add <local plugin path>
Укажите архитектуру (x86 или x64) для запуска приложения:
cordova run windows -- --arch="x86"
К сожалению, приложение не работает при вызове собственного API. Я отлаживал приложение в Visual Studio и получил исключение:
Exception is about to be caught by JavaScript library code at line 15, column 13 in ms-appx-web://com.dynamsoft.test/www/plugins/barcode/src/windows/barcodeProxy.js 0x8007007e - JavaScript runtime error: The specified module could not be found.
Это похоже на ошибку, потому что модуль отсутствует. После того, как я создал пустой файл .winmd, созданный с помощью шаблона C#, и добавил его в качестве ссылки, исключение исчезло.
использованная литература
Исходный код
https://github.com/yushulx/cordova-windows-barcode
Первоначально опубликовано на www.codepool.biz 20 ноября 2018 г.