2016-03-21 12 views
0

誰にもホッ。このチュートリアルでは、pdfmakeで生成されたpdfを使ってモーダルビューを作成しました。このpdfをキャッシュに保存/イオンストレージのローカルストレージ

http://gonehybrid.com/how-to-create-and-display-a-pdf-file-in-your-ionic-app/

私の単純な質問です私はキャッシュ内に私のローカルストレージにPDFファイルを保存することができますか? pdfを電子メールで送るかopenfile2で開く必要があります。私はイオンとコードを使用しています。

+0

あなたは、デバイスのローカルストレージにファイルを保存するために使用するファイル転送プラグインやカスタムコードのいずれかを使用することができます。次のポストのファイル作成セクションのサンプルコードを確認してください。http://stackoverflow.com/questions/36037359/unable-to-delete-file-using-cordova/36038741#36038741 – Gandhi

+0

答えに感謝します。私はそのプラグインをインストールしましたが、その例ではファイルを格納するために何が必要かわかりませんでした。ベース64コード?ブロブ?私は新しいとidkです。 – Steph8

+0

私の答えのセクションでサンプルコードを見つけてください。それが役に立てば幸い。答えのために – Gandhi

答えて

0

私はあなたがそれをコーディング方法を知りませんが、私はあなたが使用する必要があるプラグインを知っている:

https://github.com/apache/cordova-plugin-file

のgitはプラグインの完全なドキュメントが含まれていますので、あなたが必要とすることができるすべてのものがあるはずです。コルドバファイルとファイル転送プラグインを使用して、デバイスでPDFファイルを書き込むための

+0

ありがとう。私はそのプラグインをインストールしましたが、その例ではファイルを格納するために何が必要かわかりませんでした。ベース64コード?ブロブ?私は新しいとidkです。 – Steph8

+0

あなたは[ここ](http://docs.phonegap.com/en/edge/cordova_file_file.md.html#FileWriter)を介して詳細を見つけることができるはずです –

+0

私はそれを読むが、私は必要なものを理解していないpdfを書く。今、私は$ cordovaFile.writeFile(cordova.file.dataDirectory、 "file.txt"、 "text"、true)を使ってファイルを書く方法を知っています。最初はディレクトリです(私はそれをテストします。ファイルを読み取るためにexternalstorageに書き込む)、新しい2番目はファイルの名前、3番目は内容です。この最後のアイテムは私が見逃しています。私はpdfを書くのに何が必要ですか?ベース64? idkこれ。 – Steph8

0

サンプルコード:

var fileTransfer = new FileTransfer(); 

    if (sessionStorage.platform.toLowerCase() == "android") { 
     window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, onFileSystemSuccess, onError); 
    } else { 
     // for iOS 
     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, onError); 
    } 

    function onError(e) { 
     navigator.notification.alert("Error : Downloading Failed"); 
    }; 

    function onFileSystemSuccess(fileSystem) { 
     var entry = ""; 
     if (sessionStorage.platform.toLowerCase() == "android") { 
      entry = fileSystem; 
     } else { 
      entry = fileSystem.root; 
     } 
     entry.getDirectory("Cordova", { 
      create: true, 
      exclusive: false 
     }, onGetDirectorySuccess, onGetDirectoryFail); 
    }; 

    function onGetDirectorySuccess(dir) { 
     cdr = dir; 
     dir.getFile(filename, { 
      create: true, 
      exclusive: false 
     }, gotFileEntry, errorHandler); 
    }; 

    function gotFileEntry(fileEntry) { 
     // URL in which the pdf is available 
     var documentUrl = "http://localhost:8080/testapp/test.pdf"; 
     var uri = encodeURI(documentUrl); 
     fileTransfer.download(uri, cdr.nativeURL + "test.pdf", 
      function(entry) { 
       // Logic to open file using file opener plugin 
      }, 
      function(error) { 
       navigator.notification.alert(ajaxErrorMsg); 
      }, 
      false 
     ); 
    }; 
+0

それは完璧ですが、私の問題は、私はPDFを書く方法を知っているが、私はその例では、PDFを書く方法を理解することはできません。私はどこにPDFファイルが格納されているのか、データがどこに格納されているのかわかりません。 – Steph8

+0

@ Steph8、申し訳ありませんが、私はあなたがその例を踏襲していることを知っています。イオンフレームワーク。しかし、私の野生の推測は '$ scope.pdfUrl'にファイルが存在するローカルデバイスのURLを返すかどうか警告するよう試みることです。 Jusは推測する。 – Gandhi

+0

残念ながら$ scope.pdfUrlはblob:http%3A // 172.31.5.9%3A8100/3c9dbb3d-ff85-4c5a-9d21-97f85e516226ローカルURLではありません:onGetDirectorySuccess()関数の – Steph8

関連する問題