Я разработал приложение Ionic 2 для Android и теперь пытаюсь заставить его работать на iOS.
Приложение загружает много файлов при первом входе в систему, и я делаю это с помощью плагина Ionic-Native Transfer. На Android все работает нормально, но на iOS приложение, кажется, застряло в обещании функции fileTransfer.download(), оно даже не выдает ошибку.
Пример кода:
private downloadFile(downloadURL: string, filename: string) {
return new Promise((resolve, reject) => {
this.fileTransfer.download(downloadURL, this.file.dataDirectory + filename, true).then(_ => {
console.log("download of " + filename + " complete");
resolve("download finished");
}).catch(err => {
console.log(err);
reject("download error");
});
});
}
Я также пытался использовать this.file.documentsDirectory вместо этого для iOS, но я все еще не получаю никаких сообщений об ошибках или успехах.
URL-адреса загрузки взяты из ссылки firebaseStorage, но я также проверил ее с обычным URL-адресом загрузки.
Я предполагаю, что это как-то связано с разрешениями, но пока не нашел решения. Другим предположением было бы то, что существует ограничение на количество потоков на iOS, где в реальном времени находится от 30 до 100 промисов.
Но странно то, что отсутствуют сообщения об ошибках, они просто зависают, и ни одна загрузка не заканчивается.
Любая помощь приветствуется!
ИЗМЕНИТЬ:
Я до сих пор не выяснил причину проблемы, но тем временем Ionic выпустил новую версию плагина Transfer, который теперь в официальной документации называется FileTransfer. Как только я изменил свой код, чтобы использовать новый плагин FileTransfer, проблема исчезла.
Я надеюсь, что это поможет другим, кто столкнулся с той же проблемой.