venerdì 5 agosto 2011

Download and Open a pdf with PhoneGap

Scaricare e aprire un file pdf con phonegap su Android.

Nativamente phonegap non permette di fare il download di un file pdf sulla propria sd card e non visualizza in automatico i files PDF.
E' quindi necessario sviluppare dei plugins ed installare un lettore pdf sullo smartphone.



E' quindi necessario:

  1. Installare nel proprio smartphone un lettore pdf (es: Android Adobe® Reader®)
  2. Creare un plugin per il download dei files
  3. Creare un plugin per l'apertura del pdf utilizzando il programma installato al punto 1

Dettagli Punto 2/3:
  1. Impostare l'ambiente di sviluppo phonegap in eclipse.
  2. Scaricare le classi java del mio esempio da QUI
  3. Unzippare il file scaricato nella cartella "src"
  4. Scaricare i javascript del mio esempio da QUI
  5. Unzippare il file scaricato nella cartella "assets/www"
  6. Nell'index.html aggiungere le chiamate ai js:
  7.      <script type="text/javascript" charset="utf-8" src="main.js"></script>
  8.      <script type="text/javascript" charset="utf-8" src="pdfviewer.js"></script>
  9.      <script type="text/javascript" charset="utf-8" src="downloader.js"></script>
  10. In "res/xml/plugins.xml" aggiungere:
  11.     <plugin name="Downloader" value="com.phonegap.plugins.downloader.Downloader"/>
  12.     <plugin name="PdfViewer" value="com.phonegap.plugins.pdfViewer.PdfViewer"/>

Per chiamare i metodi definiti nel plugin. Il file index.html di test potrebbe essere questo:
<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap</title>
<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8" src="main.js"></script>
<script type="text/javascript" charset="utf-8" src="pdfviewer.js"></script>
<script type="text/javascript" charset="utf-8" src="downloader.js"></script>

</head>
<body>
<h1>Hello World</h1>
<a href="#" onclick="window.plugins.downloader.downloadFile('http://www.cataniaperte.com/sport/articoli/Kitesurf.pdf','/sdcard/download/kite/', 'Kitesurf.pdf', true, downloadOkCallbak, downloadErCallbak);">Download pdf</a><br>
<a href="#" onclick="window.plugins.pdfViewer.showPdf('/sdcard/download/kite/Kitesurf.pdf');">open</a>
</body>
</html>