我通过WebSockets加载pdf文件。有一个原生应用程序打开pdf文件我想使用ngCordova中的$cordovaFile首先将文件存储到本地文件系统并使用$cordovaFileOpener2打开它。这样,可以使用任何想要的程序打开文件。
问题是,任何程序都会拒绝使用无效的路径错误打开文件。
我的代码看起来像这样:
SomeAsysncPdfService.load().then(function(base64Pdf){
$cordovaFile.writeFile(cordova.file.dataDirectory, "myPdf.pdf", window.atob(base64Pdf), true).then(function(event){
// I tested to read the file with $cordovaFile.readAsDataURL(cordova.file.dataDirectory, fileName); and it worked. so the file must have been written
$cordovaFileOpener2.open(
event.target.localURL,'application/pdf'
);
})
});
我还尝试将filePath从cordova文件系统(cdvfile)转换为常规file://...
文件,但没有成功。看起来fileopener可以读取路径,但不允许其他程序从apps文件管理器打开文件。