Cómo abrir el archivo descargado (pdf, zip, docx, etc) en la aplicación Phonegap?
Actualmente estoy trabajando en descargar el módulo. Una vez que el usuario haga clic en el botón de descarga, el archivo (en pdf, archivo zip o docx) se descargará del servidor y se almacenará en el almacenamiento local. Puedo descargar el archivo usando el método de FileTransfer.Download (), pero no puedo abrirlo pasando la trayectoria del archivo.
A continuación se muestra mi código:
- Cómo detectar sólo el navegador nativo de Android
- Phonegap Cross-domain AJAX POST La solicitud no funciona en Android
- Cordova / Phonegap Todas las Solicitudes de Ajax Externas Devuelve 404
- Seleccionar texto con javascript y mostrar la ventana de copia de Android
- ¿Cordova evita la arrastrar webview en el campo de enfoque?
<!DOCTYPE HTML> <html> <head> <meta name = "viewport" content = "user-scalable=no,width=device-width" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Test Page</title> <script type="text/javascript" charset="utf-8" src="js/cordova-2.0.0.js"></script> <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> <style type="text/css"> * { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } </style> <script type="text/javascript" charset="utf-8"> function init() { document.addEventListener("deviceready", ready, true); } function ready() { console.log("App is ready."); } function download() { // var remoteFile = "https://dl.dropbox.com/u/6731723/a.zip"; var remoteFile = "https://dl.dropbox.com/u/6731723/Beaver.pdf"; var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/') + 1); window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { fileSystem.root.getFile(localFileName, { create: true, exclusive: false }, function (fileEntry) { var localPath = fileEntry.fullPath; console.log("localPath1:" + localPath); if (device.platform === "Android" && localPath.indexOf("file://") === 0) { localPath = localPath.substring(7); } console.log("localPath2 save:" + localPath); var ft = new FileTransfer(); ft.download(remoteFile, localPath, function (entry) { console.log("file path:" + entry.fullPath); var linkopen = document.getElementById("openlink"); linkopen.style.display = "block"; linkopen.href = entry.fullPath; // var dwnldImg = document.getElementById("dwnldImg"); //dwnldImg.src = entry.fullPath; //dwnldImg.style.visibility = "visible"; //dwnldImg.style.display = "block"; }, fail); }, fail); }, fail); } function fail(error) { console.log("error:" + error.code); } </script> </head> <body onload="init();"> <a href="#" onclick="download();">Download file</a> <br /> <br /> <br /> <a href="#" id="openlink" style="display:none;font-size:larger;">open</a> </body> </html>
Cualquier idea de cómo conseguir que funcione?
- Cómo abrir mediante programación teclado táctil de Android de acuerdo con el tipo de entrada html en android webview
- ¿Cómo obtener un evento mousemove continuo cuando se utiliza el navegador móvil android?
- Capturar evento clave para retroceso
- jquery mmenu de frebsite no funciona en orientación horizontal en móvil (android)
- Phonegap Build CLI-5.2.0 Descargar y cerrar desde dentro de la aplicación Web
- Cambiar el tamaño de la página móvil de Jquery durante la transición de página
- Phonegap, textarea no aceptará entrada
- Jquery móvil - valor de visualización en teléfonos android
Nativo PhoneGap no permite descargar un archivo pdf en su tarjeta sd y no muestra archivos PDF automáticamente.
- Instale el lector de pdf en su smartphone.
- Cree un complemento para descargar archivos.
- Cree un complemento para abrir el pdf utilizando el programa instalado en el paso 1.
Detalles de los pasos 2 y 3 :
Establezca el entorno de desarrollo PhoneGap en Eclipse.
Descargue las clases java de ejemplo desde AQUÍ
Descomprima el archivo descargado en la carpeta " src "
Descargue el javascript del ejemplo desde AQUÍ
Descomprima el archivo descargado en la carpeta " assets / www"
En el archivo html de índice. Dar llamadas a js:
<script charset="utf-8" src="main.js"> </script> <script charset="utf-8" src="pdfviewer.js"> </script> <script charset="utf-8" src="downloader.js"> </script>
En " res / xml / plugins.xml ", agregue:
<plugin name="Downloader" value="com.phonegap.plugins.downloader.Downloader"/> <plugin name="PdfViewer" value="com.phonegap.plugins.pdfViewer.PdfViewer"/>
Para llamar a los métodos definidos en el complemento, pruebe el siguiente código en index.html:
<! DOCTYPE HTML> <html> <head> <title> PhoneGap-Android PDF Opening App</title> <script charset="utf-8" src="phonegap-1.0.0.js"></script> <script charset="utf-8" src="main.js"></script> <script charset="utf-8" src="pdfviewer.js"></script> <script charset="utf-8" src="downloader.js"></script> </Head> <body> <h1> Hello World </ h1> <a href = "#" 'sampleurf.pdf', true, downloadOkCallbak, downloadErCallbak) "> Download pdf </a> <br> <a href="#" onclick="window.plugins.pdfViewer.showPdf('/sdcard/download/sample/samplesurf.pdf');"> open </a> </body> </html>
El crédito va a http://www.giovesoft.com/2011/08/download-and-open-pdf-with-phonegap.html
Utilice el complemento del abrelatas del archivo ( https://github.com/markeeftb/FileOpener ), pero requir algún lector del pdf o oficina para leer el archivo de psf y de doc. Pero primero tenemos que instalar estos dos. Y luego utilizar este complemento para abrir el archivo downloaderd. Pero este complemento funciona sólo en el caso de almacenamiento local no en almacenamiento interno. Plugin en https://github.com/markeeftb/FileOpener
Puede utilizar el complemento FileOpener global para Cordova. Se utiliza para abrir todo tipo de archivos
http://plugins.cordova.io/#/package/fr.smile.cordova.fileopener
Extensiones compatibles
El complemento gestiona estas extensiones:
.doc, .docx, .xls, .xlsx, .rtf, .wav, .gif, .jpg, .jpeg, .png, .txt, .mpg, .mpeg, .mpe, .mp4, .avi, .ods , .odt, .ppt, .pptx, .apk
Su extensión no es de soporte .pdf ahora. (25 Sep 2014)
Una solución inelegant pero muy simple a este problema que he visto usado, es acoplar al servicio del espectador del pdf de los docs de Google; https://docs.google.com/viewer?url=https://dl.dropboxusercontent.com/u/6731723/Beaver.pdf
Usted, por supuesto, debe utilizar el inappbrowser para vincular a esta página, de lo contrario en iOS, el usuario no podrá retroceder de la vista de PDF.
- Cómo programar mi aplicación para Android para que haga algo cada hora
- Listener para el final de la llamada en Android