#ionic-framework
#ionic-framework
Вопрос:
Я пытаюсь загрузить файл с помощью своего приложения ionic, но он не работает, файл представляет собой видеофайл, и я хочу показать индикатор выполнения при его загрузке, как это будет работать, так это то, что когда пользователь нажимает на загрузить, он проверяет AppName
, существует ли каталог, это не онсоздаст каталог, затем загрузит файл внутри каталога.
Вот мой код
download() {
this.chkmkDir().then(async ()=>{
const fileTransfer: FileTransferObject = this.fileTransfer.create();
this.storageDirectory = `${this.file.dataDirectory}${api.AppName}/`;
fileTransfer.onProgress((progressEvent)=>this.progress=Math.round((progressEvent.loaded / progressEvent.total) * 100))
let fileName=await this.service.getFileName('mp4')
var URL = encodeURI('test.mp4');
fileTransfer.download(URL,`${this.storageDirectory}${fileName}`, true)
})
}
chkmkDir(){
return new Promise((resolve, reject)=>{
this.file.checkDir(this.file.dataDirectory, api.AppName).then(res=>resolve()
).catch(err => {
this.file.createDir(this.file.dataDirectory, api.AppName,false).then(res =>resolve())
.catch(err=>reject(JSON.stringify(err)));
});
})
}
Пожалуйста, что я делаю не так, я получил эту ошибку в консоли
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'then' of undefined TypeError: Cannot read property 'then' of undefined
Ответ №1:
Плагин, который вы используете, просто отсутствует. Ваш код не может считывать классы из плагина. Это может произойти из-за несовместимости плагинов или других проблем с зависимостями, связанных с плагинами.
Это также может произойти, если вы неправильно установили или настроили плагин. Пожалуйста, проверьте ваш файл app.module.ts. А также проверьте, регистрируется ли в консоли какая-либо ошибка, связанная с несовместимостью версий плагинов. Вкратце, все ваши плагины должны иметь ту же версию, что и ваша версия «@ionic-native / core».
Пример:
package.json
"@ionic-native/core": "^5.0.0",
"@ionic-native/diagnostic": "^5.0.0",
"@ionic-native/dialogs": "^5.0.0",
"@ionic-native/file": "^5.0.0",
"@ionic-native/file-path": "^5.0.0",
"@ionic-native/file-transfer": "^5.0.0",
"@ionic-native/http": "^5.0.0",
Комментарии:
1. я пробовал это, но это не сработало. проблема в том, что эта функция
this.file.checkDir(), this.file.createDir()
не рассматривает ее как обещание, метод then, который я добавил к нему, выдает мне ошибкуERROR Error: Uncaught (in promise): TypeError: Cannot read property 'then' of undefined TypeError: Cannot read property 'then' of undefined
2. this.file.createDir поступает из библиотеки плагинов, которая вызывает собственный плагин. Который будет неопределенным, если он не установлен должным образом.
3. Попробуйте этот код: «ionic cordova platform rm android» в вашей консоли, а затем «ionic cordova platform добавить Android». Он переустановит ваши плагины Cordova
4. Я тоже попробовал, но все равно получил то же сообщение об ошибке
5. Есть ли какая-либо ошибка компиляции?. Попробуйте сделать это с помощью «ionic cordova run android —device —verbose»