Je suis nouveau sur Ionic et j'essaye de télécharger une image prise depuis un appareil photo qui est stockée dans le système de fichiers Android:
var ft = new FileTransfer();
console.log('Uploading: ' + fileURL);
ft.upload(fileURL,
encodeURI("http://192.168.192.62:3000/api/meals/picture"),
pictureUploaded,
function(error) {
console.err(error);
$ionicLoading.show({template: 'Ooops error uploading picture...'});
setTimeout(function(){$ionicLoading.hide();}, 3000);
},
options);
var pictureUploaded = function() {
console.log('uploaded!');
$ionicLoading.hide();
};
fileUrl pointe vers une image existante: file: ///data/data/com.ionicframework.nutrilifemobile664547/files/Q2AtO1462636767466.jpg
Dans chrome: // inspect/# devices console, j'obtiens l'erreur suivante et il semble que, à cause de l'erreur, les options FileOptions ne sont pas non plus correctement envoyées. Il s'agit de l'erreur (non autorisé à charger une ressource locale):
Version Cordova: 6.1.1 Version ionique: 1.7.14
Des idées? Je suis coincé avec cette erreur depuis un moment.
Cela se produit lorsque vous utilisez l'option "livereload" avec Ionic.
Essayez de courir en mode normal
Une autre raison possible est qu'un plugin Webview est installé (comme https://github.com/ionic-team/cordova-plugin-ionic-webview ou simplement https://github.com/Apache/ cordova-plugin-wkwebview-engine ). Cela ne permettra pas non plus d'utiliser le protocole cdvfile://
.
Avec ionic webview> 3.x, vous devez utiliser la méthode convertFileSrc () . Par exemple, si vous avez une variable locale myURL telle que file: // ou/storage.
let win: any = window; // hack ionic/angular compilator
var myURL = win.Ionic.WebView.convertFileSrc(myURL);
07-déc-2018
Ceci est la version où cela fonctionne pour moi sur Ionic 3.9.2
app.
Supprimez la dernière version de webview
, puis:
i.e. ionic cordova plugin add [email protected]
https://github.com/ionic-team/cordova-plugin-ionic-webview/releases/tag/v1.2.1
Remarque: cette version fonctionne correctement avec la méthode normalizeURL()
.
C'est peut-être trop tard mais ... vous pouvez convertir le chemin natif en blob en utilisant File puis convertir blob en URL en utilisant URL.createObjectURL (blob) et en passant/setting en tant que src à votre élément HTML. Ceci n'est pas nécessaire pour l'environnement de production, mais vous pouvez l'utiliser pour le développement avec -lc. Cela peut fonctionner
Vraiment simple, je l'ai résolu avec cordova run Android