2016-05-26 2 views
1

Est-ce que quelqu'un sait pourquoi l'utilisation de 'fileEntry.file' continue d'échouer dans mon application Windows 8?Est-ce que quelqu'un sait pourquoi l'utilisation de 'fileEntry.file' continue à échouer dans mon application Windows 8 lorsque j'essaie de lire un fichier?

Si j'utilise le code suivant échoue:

Windows.Storage.StorageFile.getFileFromApplicationUriAsync(new Windows.Foundation.Uri(cordova.file.applicationDirectory + 'www/assets/pages/en/navigation.html')).done(usethisfile, fail); 

function usethisfile(fileEntry) { 
    console.log("Im going to use the file... " + fileEntry.path); 
    fileEntry.file(function (file) { 
     var reader = new FileReader(); 
     reader.onloadend = function() { 
      console.log("Successful file read: " + this.result); 
     }; 
     reader.readAsText(fileEntry); 
    }, onErrorReadFile); 
} 

mais si je retire la partie 'fileEntry.file' il fonctionne très bien:

Windows.Storage.StorageFile.getFileFromApplicationUriAsync(new Windows.Foundation.Uri(cordova.file.applicationDirectory + 'www/assets/pages/en/navigation.html')).done(usethisfile, fail); 

function usethisfile(fileEntry) { 
    console.log("Im going to use the file... " + fileEntry.path); 
    //fileEntry.file(function (file) { 
     var reader = new FileReader(); 
     reader.onloadend = function() { 
      console.log("Successful file read: " + this.result); 
     }; 
     reader.readAsText(fileEntry); 
    //}, onErrorReadFile); 
} 

Les documents officiels disent utiliser « fileentry .file ': https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html et j'ai déjà l'application fonctionnant sur les deux les magasins Android et Apple donc j'espère pouvoir continuer à utiliser toutes les fonctions actuelles qui utilisent déjà' fileEntry.file 'pour la version Windows.

L'erreur que je reçois est: 0x800a01b6 - Erreur d'exécution de JavaScript: L'objet ne supporte pas la propriété ou la méthode 'fichier'. J'utilise Cordova via la ligne de commande et Visual Studio pour l'exécuter si cela peut aider du tout.

+1

[getFileFromApplicationUriAsync] (https://msdn.microsoft.com/library/windows/apps/windows.storage.storagefile.getfilefromapplicationuriasync. aspx) renvoie une instance [StorageFile] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.aspx), notez une instance FileEntry –

+0

Ah ok, cela fait un peu plus de sens, merci. Y a-t-il un moyen de les faire travailler ensemble? – Pyper

Répondre

0

pas 100% sûr, mais essayez d'ajouter argument e lorsque vous définissez la méthode onloadend