2017-09-25 11 views
0

Hallo Ich kann das offizielle lokale Verzeichnis auf dem iPhone Telefon nicht kopieren. Ich erhalte bei dieser Funktion einen Fehler copyFileToLocalDir. Immer, wenn ich ein Bild von der Galerie und Kamera des Telefons bekomme, bekomme ich immer den Fehler. Nach jedem Foto auf dem Android-Telefon befindet sich jedes Foto auf der lokalen Leitung. Wie kann ich es bekommen? Warum funktioniert es auf iOS Telefone bei der Arbeit nahtlos auf Android Telefone?Ionic 2 Bild lokale Verzeichniskopie funktioniert nicht

presentActionSheet(){ 
    let actionSheet = this.actionSheetCtrl.create({ 
     title : "Resim Kaynağını Seçiniz", 
     buttons : [{ 
     text : "Galeriden Seç", 
     handler :()=>{ 
this.takePicture(this.camera.PictureSourceType.PHOTOLIBRARY); 
     } 
     },{ 
     text : "Resim Çek", 
     handler :()=>{ 
      this.takePicture(this.camera.PictureSourceType.CAMERA); 
     } 
     }] 
    }); 
    actionSheet.present(); 
    } 
    takePicture(SOURCETYPE){ 
    var options = { 
     quality : 25, 
     sourceType : SOURCETYPE, 
     destinationType : this.camera.DestinationType.FILE_URI, 
     encodingType : this.camera.EncodingType.JPEG, 
     saveToPhotoAlbum : false, 
     correctOrientation : true 
    }; 
    var yerelDizinAndroid; 
    var yerelDizinIOS; 
    this.camera.getPicture(options).then((imagePath)=>{ 
     if(this.platform.is('android') && SOURCETYPE === this.camera.PictureSourceType.PHOTOLIBRARY){ 
     this.filePath.resolveNativePath(imagePath).then(filePath =>{ 
      let correctPath = filePath.substr(0, filePath.lastIndexOf('/') + 1); 
      let currentName = imagePath.substring(imagePath.lastIndexOf('/') + 1, imagePath.lastIndexOf('?')); 
      yerelDizinAndroid = currentName; 
      this.copyFileToLocalDir(correctPath, currentName, this.createFileName()); 
     }); 
     }else { 
     var currentName = imagePath.substr(imagePath.lastIndexOf('/') + 1); 
     var correctPath = imagePath.substr(0, imagePath.lastIndexOf('/') + 1); 
     yerelDizinIOS = currentName; 
     this.copyFileToLocalDir(correctPath, currentName, this.createFileName()); 
    } 
    }, (err) => { 
    this.presentToast('Herhangi bir işlem yapılmadı.'); 
    /* this.file.removeDir(cordova.file.dataDirectory, yerelDizinAndroid); 
    this.file.removeDir(cordova.file.dataDirectory, yerelDizinIOS); */ 
    }); 
} 
    private createFileName() { 
    var newFileName = "S" + window.localStorage.getItem("auth_key") + ".jpg"; 
    return newFileName; 
    } 
    private copyFileToLocalDir(namePath, currentName, newFileName) { 
    this.file.copyFile(namePath, currentName, cordova.file.dataDirectory, newFileName).then(success => { 
     this.lastImage = newFileName; 
    }, (error) => { 
     this.presentToast('Görsel yerel dizine taşınamadı..'); 
    }); 
    } 
+0

Was ist der spezifische Fehler, den Sie bekommen? Und nur um klar zu sein, funktioniert es gut auf Android, aber nicht iOS richtig? – lintmouse

+0

Ja, es funktioniert nicht nur auf iOS-Handys @lintmouse – Degisim

+0

Wenn es auf einer Plattform funktioniert, aber nicht die andere ist es wahrscheinlich die Einschränkungen/Zugriffsrechte auf einer bestimmten Plattform. Stellen Sie sicher, dass Sie den richtigen Dateipfad verwenden. Ich glaube nicht, dass dies ionengerüstbezogen ist, eher wie OS/Cordova. – DanteTheSmith

Antwort

Verwandte Themen