【发布时间】:2016-05-20 16:52:19
【问题描述】:
我使用文件插件生成了 PDF 发票。现在我想在应用程序中打开文件。我尝试了 inAppBrowser,但它给出了一个空页面。我尝试了 fileopener,它既没有给出成功或失败的消息。如何指定文件的路径。请帮忙!!
应用内浏览器方法
var cdr='';
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dir) {
cdr=dir;
alert("cdr "+cdr);
dir.getFile("test.pdf", {create: true, exclusive: false}, function (fileEntry)
{
fileEntry.createWriter(function (writer) {
writer.onwrite = function(evt) {
console.log(" write success");
};
console.log("writing to file");
writer.write( pdfOutput );
},function () {
console.log("ERROR SAVEFILE");
});
});
});
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dir) {
alert("open file");
dir.getFile("test.pdf", {create:false}, function(fileEntry) { //EXISTS
alert("native url "+cdr.toNativeURL());
var url =cdr.toNativeURL() + "test.pdf";
alert(url);
window.open(url, '_blank');
}, function() { //NOT EXISTS
alert("no file found");
});
});
}
文件打开方法
var cdr='';
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory , function(dir) {
cdr=dir;
console.log(" vidhya cdr "+cdr);
dir.getFile("test.pdf", {create: true, exclusive: false}, function (fileEntry)
{
fileEntry.createWriter(function (writer) {
writer.onwrite = function(evt) {
console.log("vidhya write success");
openFile(cdr);
};
console.log("vidhya writing to file");
writer.write( pdfOutput );
},function () {
console.log("vidhya ERROR SAVEFILE");
});
});
});
function openFile(cdr) {
var fs;
function fsSuccess(fileSystem)
{
fs = fileSystem;
console.log("vidhya "+fs);
}
function fsFail(event)
{
console.log(event.target.error.code);
}
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, fsSuccess, fsFail);
console.log("vidhya opening file " +cdr.toNativeURL());
cordova.plugins.fileOpener2.open(
fs.root.toURL() +'test.pdf',
"application/pdf", //mimetype
{
error: function(e) {
alert("Error Opening the File.Unsupported document format.");
},
success: function() {
// success callback handler
alert("success");
}
}
);
}
我的文件正在保存在 /internal storage/Android/Data/app_folder/files/test.pdf 中
【问题讨论】:
-
您确定文件正在保存吗?您是否尝试过使用文件资源管理器导航到该文件?
-
它正在保存..我可以在应用程序之外查看它。
-
现在您已经提供了有价值的信息。在您的情况下,文件存储在应用程序数据文件夹中,因此您无法访问应用程序外部的文件,因为应用程序数据受到保护以供外部访问。您必须像我提到的那样存储在某个外部文件夹中并尝试查看。
标签: javascript cordova cordova-plugins