我试图使用FileOpener2 (通过ng-cordova)打开一个PDF文件,代码如下:
$cordovaFile.checkFile(cordova.file.dataDirectory, attachmentPath)
.then((fileEntry) => {
// success
fileEntry.getMetadata((metadata) => {
// metadata.size is in bytes
var megabyteSize = metadata.size / 1048576;
if (megabyteSize > 5) {
var path = cordova.file.dataDirectory + attachmentPath;
console.log(path); // prints: file:///data/data/com.ionicframework.enhatch146189/files/attachments/CS-353ES_CS-420ES_Eng.pdf which is correct
$cordovaFileOpener2.open(path, 'application/pdf').then(() => {
console.log("Opened!") // prints
}, (error) => {
console.log(error);
usePDFJs(); // tries to render PDF in app with PDFJs
});
} else {
usePDFJs();
}
})
}, function (error) {
// error
console.error(error);
});发生的事情让我感到困惑:它提示我“在Adobe中打开这个文件?”并列出其他PDF查看器,控制台打印“打开!”
但是,无论我打开什么pdf,我都会遇到一些错误,比如“无法打开这个PDF文件”。
有人能看出这个代码有什么问题吗?
发布于 2015-07-02 02:38:58
显然,如果你在安卓上使用cordova.file.dataDirectory,你就不能在其他应用程序中打开这些文件,也不能将它们附加到电子邮件中。愚蠢的错误--编码太快,在文档上读得太少。使用cordova.file.externalApplicationStorageDirectory解决了这个问题。
https://stackoverflow.com/questions/31148545
复制相似问题