Это следующий код для face-api- js monkeyPatch
- Использование face-api- js
- Использование ioni c собственный файл
@ionic-native/file
- Использование плагина файла cordova
cordova-plugin-file
- вызов window.resolveLocalFileSystemURL после готовности платформы
- Также попробовал функцию ioni c native file
resolveLocalFilesystemUrl
, но выдает ошибку. Затем of undefined this.file.resolveLocalFilesystemUrl(absolute_url).then((entry:Entry)=>{console.log(entry)});
- Все пробовали, но безуспешно
async function loadModel () {
const filePathRoot = 'android_assets/www/assets/models/';
faceapi.env.monkeyPatch({
readFile: filePath =>
new Promise(resolve => {
this.platform.ready().then(()=>{
window.resolveLocalFileSystemURL(`file:///${filePath}`, onSuccess, onError);
function onSuccess(fileEntry) {
fileEntry.file(
function (file) {
var reader = new FileReader();
let fileExtension = filePath
.split("?")[0]
.split(".")
.pop();
if (fileExtension === "json") {
reader.onloadend = function (e) {
const data = JSON.parse(e.target.result.toString())
resolve(data);
};
reader.readAsText(file);
}
}
);
}
function onError(err) {
console.log('this is window.resolve', err);
}
})
}),
Canvas: HTMLCanvasElement,
Image: HTMLImageElement,
ImageData: ImageData,
Video: HTMLVideoElement,
createCanvasElement: () => document.createElement("canvas"),
createImageElement: () => document.createElement("img")
});
await faceapi.nets.tinyFaceDetector.loadFromDisk(filePathRoot),
await faceapi.nets.faceRecognitionNet.loadFromDisk(filePathRoot),
await faceapi.nets.faceLandmark68Net.loadFromDisk(filePathRoot)
}