无法使用FileOpener2打开文件,但在Android中未获得错误

无法使用FileOpener2打开文件,但在Android中未获得错误,android,angularjs,cordova,ionic-framework,ngcordova,Android,Angularjs,Cordova,Ionic Framework,Ngcordova,我正在尝试使用FileOpener2(通过ng cordova)打开PDF文件,代码如下: $cordovaFile.checkFile(cordova.file.dataDirectory, attachmentPath) .then((fileEntry) => { // success fileEntry.getMetadata((metadata) => { // metadata.size is in byte

我正在尝试使用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 Reader中打开此文件?”并列出其他PDF查看器,控制台会打印“打开!”

然而,无论我用什么方式打开任何pdf,我都会遇到一些错误,例如“无法打开此pdf文件”


有人看到这段代码有问题吗?

显然,如果你在android上使用
cordova.file.dataDirectory
,你就无法在其他应用程序中打开这些文件或将它们附加到电子邮件中。愚蠢的错误——编码太快,阅读文档太少。使用
cordova.file.externalApplicationStorageDirectory解决了这个问题。

那么您应该使用什么位置来代替呢?很高兴知道你是如何解决这个问题的。哦,太棒了!我使用的是
cordova.file.externalApplicationStorageDirectory
。@PhilBarresi您是否将文件从资产移动到SD文件夹以使用
cordova.file.externalApplicationStorageDirectory
?我还想知道一个彻底的解决办法。那会很有帮助的。