我希望这是发布在正确的部分,但如果我在其他地方最好的话,我可以随时告诉我是否应该在另一个主题中重新打开主题 .
问题:有没有办法从以下位置传输文件:
assets / folder / file.pdf
至:
file.dataDirectory()(要去的文件的本机目录)
目前我有以下代码,一个文件(比如file.pdf)位于'assets / folder / file.pdf'中,我希望在iOS / android中带上'open with'部分,这样文件就可以了在另一个PDF填充应用程序中打开,如adobe reader . 在浏览网页后,我最好的选择是使用'cordova-file-opener2'插件,该插件专门允许在外部应用程序中打开文件 . 但是,此插件发生的一个轻微问题是文件必须从本机存储位置打开,而不是'assets / folder'文件夹,因此我需要将当前驻留在'assets / folder'中的PDF保存到原生文件夹 .
代码到目前为止:
this.file.checkFile(this.file.dataDirectory, 'file.pdf').then((result:boolean) => {
//annoying quirk with plugin means 'result' wont return false, instead i have to use catch to know the file doesn't exist
}).catch((err) => {
this.file.moveFile('assets/folder/', 'file.pdf', this.file.dataDirectory, 'file.pdf').then(() => {
this.fileOpener.open(this.general.dataDirectory + 'file.pdf', 'application/pdf').then(() => {
alert('success');
});
});
});
我还有代码块来阻止任何错误,我现在得到以下内容:
{"code":5,"message": "ENCODING_ERR"}
从代码的 .moveFile() 部分,我假设是由于没有找到有问题的file.pdf . 现在我明白documentViewer插件允许相同的功能,但是我希望直接显示文件中的open而不是显示空白文件,并希望用户单击右上角的'share'箭头在另一个应用程序中打开(糟糕的UX) .
或者,如果有办法将file.pdf直接存入存储而不必先从assets文件夹中传输它,我认为这也可以 .
任何有助于解决此问题的帮助都提前了解 . 谢谢 .