【发布时间】:2014-09-02 14:13:00
【问题描述】:
我需要在混合应用程序中打开一个 pdf,该 pdf 文件之前是由混合应用程序下载的(该应用程序可以从外部存储读取和写入)。我可以通过 fileSystem 检索文件条目:
someDirEntry.getFile(fileName, {create: true, exclusive: false}, openViewPdf, ioFail);
在 openViewPdf 中我可以读取文件的路径:
function openViewPdf(fe){
console.log("V1 "+fe.toURL());
console.log("V2 "+fe.fullPath);
//console.error("V3 "+toNativeURL()); //not supported by 2.3.0
window.open(fe.toURL(), '_system');
}
输出类似于:
V1 file:///mnt/sdcard/someDir/fileName.pdf
V2 file:///mnt/sdcard/someDir/fileName.pdf
即fullpath 和 .toURL() 之间没有区别。一个新窗口打开,但在新窗口中我看到一个错误警报:
There was a network error. (file:///android_asset/www/fileName.pdf
就像 InAppBrowser 试图在应用程序的资产目录中打开 pdf 一样(这当然是错误的!)正确的路径是上面列出的路径。除了尝试额外的插件(参见:Phonegap how to download and open pdf file in android app)之外,没有其他方法可以完成这项工作吗?
【问题讨论】:
标签: android pdf cordova local-storage