2017-07-07 2 views
8

J'ai développé une application Ionic 2 sur Android et j'essaie maintenant de la faire fonctionner sur iOS.Ionic 2 fileTransfer.download ne pas réagir sur iOS

L'application télécharge beaucoup de fichiers lors de la connexion initiale et je le fais avec le Ionic-Native Transfer plugin. Sur Android, tout fonctionne bien, mais sur iOS l'application semble coincé dans la promesse de la fonction fileTransfer.download(), il ne jette même pas une erreur.

Exemple de code:

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"); 
     }); 
    }); 
} 

J'ai essayé aussi d'utiliser le this.file.documentsDirectory plutôt pour iOS mais je ne toujours obtenir des sorties d'erreur ou le succès. Les downloadURL proviennent d'un lien firebaseStorage mais j'ai aussi testé avec une URL de téléchargement habituelle. Je suppose que cela a quelque chose à voir avec les permissions, mais je n'ai pas encore trouvé de solution. L'autre hypothèse serait, qu'il y a une limite à plusieurs threads sur iOS, il y a environ entre 30-100 promesses en direct. Mais ce qui est étrange, ce sont les messages d'erreur qui manquent, ils sont juste bloqués et pas un seul téléchargement ne se termine.

Toute aide est appréciée!

EDIT:

Je n'ai toujours pas compris la cause du problème, mais en attendant, ionique publié une nouvelle version du plug-in de transfert, qui est maintenant appelé FileTransfer dans les documents officiels. Une fois que j'ai changé mon code pour utiliser le nouveau plugin FileTransfer, le problème a disparu. J'espère que cela aidera les autres qui ont fait face au même problème.

+0

Avez-vous vu des vidéos de Josh Morony déboguer des applications Ionic en cours d'exécution sur iPhone? https://www.youtube.com/watch?v=9J8AxhDxtTE&feature=youtu.be – JGFMK

+0

Merci pour ce lien, j'ai un peu résolu mon problème maintenant, en mettant à jour le plus récent plugin FileTransfer d'Ionic qui a été publié entre le moment de mon premier message et aujourd'hui. J'ai édité mon post ci-dessus. –

+0

Content de l'avoir résolu. Vous savez peut répondre à votre propre question. D'autres ont favorisé/favorisé ceci. Donc, s'ils voient cela comme une réponse, cela les aidera aussi. – JGFMK

Répondre

0

Je n'ai toujours pas compris la cause du problème, mais en attendant, Ionic a publié une nouvelle version du Transfer Plugin, qui est maintenant appelé FileTransfer dans les documents officiels. Une fois que j'ai changé mon code pour utiliser le nouveau plugin FileTransfer, le problème a disparu. J'espère que cela aidera les autres qui ont fait face au même problème.

+1

J'ai exactement le même problème même avec le nouveau plugin FileTransfer natif ionique. – askilondz