2016-12-04 32 views
0

blob pdfファイルを電子メールコンポーザに添付しようとしています。しかし、それは私のために働いていません。電子メールでコンポーザを電子メールに添付するには

function createPdf(reportData){ 
     return $q(function(resolve, reject) { 
      var dd = createDocumentDefinition(reportData); 
      var pdf = pdfMake.createPdf(dd) 
      .getBuffer(function(buffer){ 
       var utf8 = new Uint8Array(buffer); // Convert to UTF-8... 
       binaryArray = utf8.buffer; // Convert to Binary... 
       $cordovaFile.writeFile(cordova.file.dataDirectory, "file.pdf", binaryArray, true) 
       .then(function (success) { 
        alert('Pdf created'); 
       console.log("pdf created"); 
       }, function (error) { 
       console.log("error"); 
       }); 
      }); 
     }); 
    } 

このコードは動作し、作成されたアラートpdfが作成されます。

pdfGenerator.createPdf(reportbody) 
     .then(function(pdf){ 
     $ionicLoading.hide(); 
     var blob = new Blob([pdf], {type: 'application/pdf'}); 
     $scope.pdfUrl = URL.createObjectURL(blob); 
      var email = { 
      to: '[email protected]', 
      cc: '[email protected]', 
      bcc: ['[email protected]', '[email protected]'], 
      attachments: [$scope.pdfUrl], 
      subject: 'Cordova Icons', 
      body: 'How are you? Nice greetings from Leipzig', 
      isHtml: true 
     }; 

     $cordovaEmailComposer.open(email).then(null, function() { 
      // user cancelled email 
     }); 
     },function(error){ 
     console.log(error); 
     }); 

私はそれがcdvfile私を与えるcordova.file.dataDirectoryコンソール://パスではないネイティブパスを。どうすればファイルをメールに添付できますか?

答えて

1

私は私の問題の解決策を見つけました。私はここでコードを述べた、これは誰かを助けることを願っています。

function createPdf(reportData){ 
      return $q(function(resolve, reject) { 
       var dd = createDocumentDefinition(reportData); 
       var pdf = pdfMake.createPdf(dd) 
       .getBuffer(function(buffer){ 
        var utf8 = new Uint8Array(buffer); // Convert to UTF-8... 
        binaryArray = utf8.buffer; // Convert to Binary... 
        resolve(binaryArray); 
       }); 
      }); 
     } 

コントローラにおいて、

pdfGenerator.createPdf(reportbody) 
     .then(function(pdf){ 
     $ionicLoading.hide(); 
     $cordovaFile.writeFile(cordova.file.externalApplicationStorageDirectory,'mydoc.pdf',pdf,true).then(function(success){ 
    console.log("File created"); 
}) 
      var email = { 
      to: '[email protected]', 
      cc: '[email protected]', 
      bcc: ['[email protected]', '[email protected]'], 
      attachments: [externalApplicationStorageDirectory+'mydoc.pdf'], 
      subject: 'Cordova Icons', 
      body: 'How are you? Nice greetings from Leipzig', 
      isHtml: true 
     }; 

     $cordovaEmailComposer.open(email).then(null, function() { 
      // user cancelled email 
     }); 
     },function(error){ 
     console.log(error); 
     }); 
関連する問題