Я написал mesnger в ionic 3, потому что доступно хорошее руководство.У меня есть следующий метод, который дает мне проблемы, он находится в службе imghandler.
uploadimage() {
var promise = new Promise((resolve, reject) => {
this.filechooser.open().then((url) => {
(<any>window).FilePath.resolveNativePath(url, (result) => {
this.nativepath = result;
(<any>window).resolveLocalFileSystemURL(this.nativepath, (res) => {
res.file((resFile) => {
var reader = new FileReader();
reader.readAsArrayBuffer(resFile);
reader.onloadend = (evt: any) => {
var imgBlob = new Blob([evt.target.result], { type: 'image/jpeg' });
var imageStore = this.firestore.ref('/profileimages').child(firebase.auth().currentUser.uid);
imageStore.put(imgBlob).then((res) => {
this.firestore.ref('/profileimages').child(firebase.auth().currentUser.uid).getDownloadURL().then((url) => {
resolve(url);
}).catch((err) => {
reject(err);
})
}).catch((err) => {
reject(err);
})
}
})
})
})
})
})
return promise;
}
Когда моя программа запускается во время выполнения, я получаю следующую ошибку при открытии filechooser.
Error: Uncaught (in promise): TypeError: Object(...) is not a function
TypeError: Object(...) is not a function
at FileChooser.open (http://localhost:8100/build/vendor.js:79128:129)
at http://localhost:8100/build/main.js:302:31
at new t (http://localhost:8100/build/polyfills.js:3:14699)
at ImghandlerProvider.webpackJsonp.281.ImghandlerProvider.uploadimage (http://localhost:8100/build/main.js:301:23)
at ProfilepicPage.webpackJsonp.467.ProfilepicPage.chooseimage (http://localhost:8100/build/2.js:91:25)
at Object.eval [as handleEvent] (ng:///ProfilepicPageModule/ProfilepicPage.ngfactory.js:164:24)
at handleEvent (http://localhost:8100/build/vendor.js:12251:138)
at callWithDebugContext (http://localhost:8100/build/vendor.js:13543:42)
at Object.debugHandleEvent [as handleEvent] (http://localhost:8100/build/vendor.js:13131:12)
at dispatchEvent (http://localhost:8100/build/vendor.js:9151:21)
at c (http://localhost:8100/build/polyfills.js:3:13190)
at c (http://localhost:8100/build/polyfills.js:3:12876)
at http://localhost:8100/build/polyfills.js:3:13722
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:9655)
at Object.onInvokeTask (http://localhost:8100/build/vendor.js:4478:37)
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:9576)
at r.runTask (http://localhost:8100/build/polyfills.js:3:4831)
at o (http://localhost:8100/build/polyfills.js:3:1891)
at HTMLButtonElement.invoke (http://localhost:8100/build/polyfills.js:3:10673)
это импорт, который я использую.
import { Injectable } from '@angular/core';
import { File } from '@ionic-native/file';
import { FileChooser } from '@ionic-native/file-chooser/ngx'
import { FilePath } from '@ionic-native/file-path';
import firebase from 'firebase';
Есть идеи, что может быть причиной этой ошибки?Пожалуйста, дайте мне знать, если вам нужно больше деталей.