2017-12-04 6 views
-1

私はイオンフレームワークには新しく、実際にはバックエンドサービスからの応答としてバイト配列を取得し、それをblobに変換しています。イオン化してPDFに保存するにはどうすればいいですか?BlobをIonicに保存する方法

var blob = new Blob([res], { type: 'application/pdf' }); 

ここで、resはサービスからの応答(バイト配列)です。事前に

コード

var blob = new Blob([res], { type: 'application/pdf' });   

     let fileName="Receipt.pdf";   
     let filePath = (this.platform.is('android')) ? 
     this.file.externalRootDirectory : this.file.cacheDirectory; 

     this.file.writeFile(filePath, fileName, blob, { replace: true }).then((fileEntry) => { 

      console.log("File created!");   
      this.fileOpener.open(fileEntry.toURL(), 'application/pdf') 
      .then(() => console.log('File is opened')) 
      .catch(err => console.error('Error openening file: ' + err)); 
     }) 
      .catch((err) => { 
      console.error("Error creating file: " + err); 
      throw err; 
      }); 

感謝。

答えて

1

PDFを保存するには、コードバプラグインを使用する必要があります。 Ionicはこれらの周りに素晴らしいラッパーを持っていますhere。ファイル、ファイル転送、およびファイルオープナーのプラグインを確認してください。ここで

は、あなたのプロジェクトに組み込まれたこれらのプラグインを得れば、あなたが使用できるいくつかのサンプルコードです:

var blob = new Blob([res], { type: 'application/pdf' }); 

    //Determine a native file path to save to 
    let filePath = (this.appConfig.isNativeAndroid) ? this.file.externalRootDirectory : this.file.cacheDirectory; 

    //Write the file 
    this.file.writeFile(filePath, fileName, blob, { replace: true }).then((fileEntry: FileEntry) => { 

     console.log("File created!"); 

     //Open with File Opener plugin 
     this.fileOpener.open(fileEntry.toURL(), data.type) 
     .then(() => console.log('File is opened')) 
     .catch(err => console.error('Error openening file: ' + err)); 
    }) 
     .catch((err) => { 
     console.error("Error creating file: " + err); 
     throw err; //Rethrow - will be caught by caller 
     }); 
+0

は、返信いただきありがとうございます、私はこれを試してみましたが、それはエラーメッセージを与えていることはPDFを表示することはできません(ドキュメントが無効な形式であります)。 – Kumar

+0

あなたのコードとあなたが見ている正確なエラーを投稿できますか?また、WebやAndroid/iosでこれを実行していますか?これらのプラグインはAndroid/iOSでのみ動作します。 – BRass

+0

私は自分の質問を編集しており、アンドロイドエミュレータでこれを実行しています。 – Kumar

関連する問題