Я пытаюсь использовать Tesseract
в режиме офлайн в моем приложении Ionic 4
. Чтобы сделать это, я основал свой код на том, что объясняется в этом примере , хотя это делается с Ionic 3
и на том, что Tesseract GitHub объясняет относительно автономного режима .
Сначала я поместил файлы Tesseract
в каталог src\assets\lib
следующим образом (префикс tesseract-
для файлов был добавлен мной):
Затем я создал сервис, который в основном создает экземпляр автономного режима Tesseract, как указано в вышеупомянутых ссылках:
const path = this.webview.convertFileSrc(this.file.applicationDirectory + 'www/assets/lib/');
this.tesseract = await Tesseract.create({
langPath: path + 'tesseract-',
corePath: path + 'tesseract-index.js',
workerPath: path + 'tesseract-worker.js',
});
Некоторые примечания по коду:
this.file
- это File
от '@ionic-native/file/ngx'
.
- Призыв к
convertFileSrc
состоит в том, чтобы избежать ошибки unable to load resource
, которая появляется при попытке загрузить файлы Javascript напрямую.
- Если я регистрируюсь с
this.file.listDir
содержимым this.file.applicationDirectory + 'www/assets/lib/'
, я вижу Tesseract
файлы.
Теперь, когда я внедряю это в Android emulator (Pixel 2 API 28)
и пытаюсь вызвать функцию, в которой находится этот код, я получаю следующую ошибку согласно отладчику Chrome:
FWIW, это моя среда:
Ionic:
ionic (Ionic CLI) : 4.12.0 (C:\Users\guillem.vicens\AppData\Roaming\nvm\v10.15.3\node_modules\ionic)
Ionic Framework : @ionic/angular 4.1.2
@angular-devkit/build-angular : 0.13.6
@angular-devkit/schematics : 7.2.4
@angular/cli : 7.3.6
@ionic/angular-toolkit : 1.4.1
Cordova:
cordova (Cordova CLI) : not installed
Cordova Platforms : android 8.0.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 3.1.2, (and 6 other plugins)
System:
Android SDK Tools : 26.1.1 (C:\Users\myUser\AppData\Local\Android\Sdk)
NodeJS : v10.15.3 (C:\Program Files\nodejs\node.exe)
npm : 6.4.1
OS : Windows 10
Чего мне не хватает? Как правильно получить доступ к папке assets
?