[英]How to open pdf file with in our app android+phonegap+JQM?
[英]How to open downloaded file (pdf,zip,docx, etc) in Phonegap app?
目前我正在下載模塊。 用戶單擊下載按鈕后,將從服務器下載文件(pdf,zip文件或docx),並將其存儲在本地存儲中。 我可以使用FileTransfer.Download()方法下載文件,但我無法通過傳遞文件路徑打開它。
以下是我的代碼:
<!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>
任何想法如何讓它工作?
本機PhoneGap不允許在SD卡上下載pdf文件,也不會自動顯示PDF文件。
第2步和第3步的詳細信息 :
在Eclipse中設置開發環境PhoneGap 。
從HERE下載示例的java類
將下載的文件解壓縮到“ src ”文件夾中
從這里下載示例中的javascript
將下載的文件解壓縮到“ assets / www”文件夾中
在Index html文件中。 給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>
在“ res / xml / plugins.xml ”中添加:
<plugin name="Downloader" value="com.phonegap.plugins.downloader.Downloader"/>
<plugin name="PdfViewer" value="com.phonegap.plugins.pdfViewer.PdfViewer"/>
要調用插件中定義的方法,請在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>
積分轉到http://www.giovesoft.com/2011/08/download-and-open-pdf-with-phonegap.html
使用文件開啟插件( https://github.com/markeeftb/FileOpener ),但它需要一些pdf閱讀器或辦公室來閱讀psf和doc文件。 但首先我們必須安裝這兩個。 然后使用此插件打開下載文件。 但是這個插件僅在本地存儲不在內部存儲的情況下工作。 插件來自https://github.com/markeeftb/FileOpener
您可以使用Cordova的全局FileOpener插件。 它用於打開所有類型的文件
http://plugins.cordova.io/#/package/fr.smile.cordova.fileopener
支持的擴展
該插件管理這些擴展:
.doc,.docx,.xls,.xlsx,.rtf,.wav,.gif,.jpg,.jpeg,.png,.txt,.mpg,.mpeg,.mpe,.mp4,.avi,.ods ,.odt,.ppt,.pptx,.apk
它現在不支持.pdf擴展。(2014年9月25日)
我見過這個問題的一個不優雅但非常簡單的解決方案是鏈接到Google docs pdf viewer服務; https://docs.google.com/viewer?url=https://dl.dropboxusercontent.com/u/6731723/Beaver.pdf
您當然必須使用inappbrowser鏈接到此頁面,否則在iOS中,用戶將無法退出PDF視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.