2016-12-21 3 views
0

Ich habe VCF-Datei erfolgreich auf dem Server auf dem Erhalten Hilfe von meinem vorherigen question (die, die bearbeitet wird) hochgeladenLese hochgeladen VCF-Datei vom Server

Jetzt brauche ich eine Hilfe bei der, wie man die VCF-Datei oder V-Card lesen von Server und Anzeige als Kontaktnummer und Kontaktname in meiner phonegap App.

Plugin verwendet cordova-plugin-file-transfer

jemand auf diese helfen?

Antwort

2

Mit dem Plugin cordova-plugin-file-transfer https://github.com/apache/cordova-plugin-file-transfer können Sie die Datei vom Server herunterladen.

Für Lesen VCF-Datei benötigen Sie https://github.com/nilclass/vcardjs JavaScript-basierte Bibliothek. Sie können direkt .js-Dateien verwenden.

Sie können unten Beispiel folgen.

window.requestFileSystem(window.TEMPORARY, 1 * 1024 * 1024, function (fs) { 

     console.log('file system open: ' + fs.name); 
     var fileName = "temp.vcf"; 
     var dirEntry = fs.root; 
     dirEntry.getFile(fileName, { create: true, exclusive: false }, function (fileEntry) { 

      download(fileEntry,"server-path-to-file.vcf"); 

     }, onErrorCreateFile); 

    }, onErrorLoadFs); 




function download(fileEntry, uri) { 

    var fileTransfer = new FileTransfer(); 
    var fileURL = fileEntry.toURL(); 

    fileTransfer.download(
     uri, 
     fileURL, 
     function (entry) { 
      console.log("Successful download..."); 
      console.log("download complete: " + entry.toURL()); 
      readFile(entry); 
     }, 
     function (error) { 
      console.log("download error source " + error.source); 
      console.log("download error target " + error.target); 
      console.log("upload error code" + error.code); 
     }, 
     null, // or, pass false 
     { 
      //headers: { 
      // "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA==" 
      //} 
     } 
    ); 
} 


function readFile(fileEntry) { 
    fileEntry.file(function (file) { 

     var reader = new FileReader(); 

     reader.onloadend = function() { 

      console.log("Successful file read: " + reader.result); 
      reader.parseVCard(reader.result); 

     }; 

     reader.readAsText(file); 

    }, onErrorReadFile); 
} 

function parseVCard(vCarddata){ 
VCF.parse(vCarddata, function(vcard) { 
    // this function is called with a VCard instance. 
    // If the input contains more than one vCard, it is called multiple times. 
    console.log("Formatted name", vcard.fn); 
    console.log("Names", JSON.stringify(vcard.n)); 
}); 
//Fore more help:https://github.com/nilclass/vcardjs 
} 
+0

wird diese Lösung versuchen und lassen Sie wissen .. – Bunny

+0

diese Lösung funktioniert gut :-) – Bunny

+0

groß ........ :) –

Verwandte Themen