2017-01-04 3 views
2

Ich versuche, die Daten-URL eines Bildes in lokalen Speicher des iPhone gespeichert in Ionic Native, auf dem realen Gerät, nicht Simulator.Ionic Native File.readAsDataURL gibt Fehlercode: 1 Nachricht: NOT_FOUND_ERR

Ich bin mit File.readAsDataURL

I X-Code verwendet, um mein Handy lokalen Speicher zu schauen und ich kann an dieser Stelle das Bild zu sehen.

/var/mobile/Container/Daten/Anwendung/* Meine APP ID */Dokumente/www/assets/images/image.png

Hier ist mein Code:

import { Component } from '@angular/core'; 
import { Platform } from 'ionic-angular'; 
import { File } from 'ionic-native'; 

declare var cordova: any; 

@Component({ 
    selector: 'get-picture', 
    templateUrl: 'get-picutre.html' 
}) 

export class GetPictureComponent { 
    fs:string = cordova.file.documentsDirectory; 

    constructor(
     public platform: Platform 
    ) {} 

    ionViewDidEnter() { 
     this.platform.ready().then(() => { 
      console.log("FileSystem", this.fs); //logs FileSystem file:///var/mobile/Containers/Data/Application/* My APP ID */Documents/ 

      File.readAsDataURL(this.fs, 'www/assets/images/image.png') 
       .then((imgData) => console.log('Image Data', imgData)) 
       .catch((error) => console.log('error', error)); //Logs error {"code":1,"message":"NOT_FOUND_ERR"} 

      }); 
    } 

} 

ich habe mit

im Grunde das gleiche versucht
window.resolveLocalFileSystemURL(file:///var/mobile/Containers/Data/Application/* My APP ID */Documents/www/assets/images/image.png 

und ich bekomme wieder Fehlercode 1.

ich meine config.xml-Datei mit diesen Einstellungen aktualisiert:

<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" /> 
    <preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" /> 

Weiß jemand, warum dies nicht arbeiten würde?

Ionic Version - 2.1.14

Vielen Dank im Voraus!

Antwort

2

Ich habe ein bisschen mehr in dieses Problem gegraben.

Zuerst habe ich eine File.listDir() in meinem Stammdokumente Verzeichnis (cordova.file.documentsDirectory). Ich fand, dass der einzige Ordner im Dokumentenverzeichnis, den das Dateisystem sehen konnte, "NoCloud" war.

Obwohl Wikitude erfolgreich Bilder in einen Ordner in diesem Verzeichnis namens "/www/assets/images/" legt, kann das Dateisystem es nicht sehen, schreiben oder lesen.

Ich habe wikitude eingerichtet um Bilder in den "NoCloud" Ordner zu speichern und jetzt kann ich erfolgreich File.readAsDataUrl() verwenden, um base64 Bilddaten aus dem "NoCloud" Ordner zu erhalten.

Ich hoffe, das hilft jemandem.