@ ioni c -native / file-transfer / file-opener не работает Я получаю сообщение «Ошибка открытия: EACCES (доступ запрещен)» при попытке загрузить PDF-файл и открыть его в моем ioni c - angular project. Это файлы заголовков и функция для открытия вложения. Это нормально работает в android версии 9, но не в android 10. Какова причина этой проблемы?
Заголовочные файлы
import { FileTransfer, FileTransferObject } from '@ionic-native/file-transfer';
import { File } from '@ionic-native/file';
import { FileOpener } from '@ionic-native/file-opener';
import { PhotoViewer } from '@ionic-native/photo-viewer';
Вызов функции
constructor(public navCtrl: NavController, public navParams: NavParams,
...
private fileTransfer: FileTransfer,
private platform: Platform,
private file: File,
private fileOpener: FileOpener,
private photo: PhotoViewer,
...
) {...}
openAttachment(attachment) {
this.notification.getNotificationCount(this.userID).subscribe(res => this.setNotificationsCountAtStart(res));
this.loader.displayLoader();
const transfer: FileTransferObject = this.fileTransfer.create();
var filename = attachment.substring(attachment.lastIndexOf('/') + 1);
var filePath;
if (this.platform.is('ios')) {
filePath = this.file.documentsDirectory + filename;
} else if (this.platform.is('android')) {
filePath = this.file.externalRootDirectory + 'Download/' + filename;
}
if (attachment.indexOf('.pdf') > -1) {
transfer.download(this.baseurl + attachment, filePath, true).then((entry) => {
let url = entry.toURL();
this.fileOpener.open(url, 'application/pdf')
.then(() => {
console.log('File is opened');
this.loader.hideLoader();
})
.catch(e => console.log('Error opening file', JSON.stringify(e)))
}, (error) => {
// handle error
let toast = this.toast.create({
message: JSON.stringify(error),
duration: 3000,
position: 'bottom'
});
toast.present();
});
} else if (attachment.indexOf('.png') > -1) {
transfer.download(this.baseurl + attachment, filePath, true).then(entry => {
let url = entry.toURL();
this.loader.hideLoader();
this.photo.show(url, filename, {});
})
} else if (attachment.indexOf('.jpg') > -1) {
transfer.download(this.baseurl + attachment, filePath, true).then(entry => {
let url = entry.toURL();
this.loader.hideLoader();
this.photo.show(url, filename, {});
})
} else if (attachment.indexOf('.jpeg') > -1) {
transfer.download(this.baseurl + attachment, filePath, true).then(entry => {
let url = entry.toURL();
this.loader.hideLoader();
this.photo.show(url, filename, {});
})
} else {
this.loader.hideLoader();
}
}