vue.js - Capacitor 3 和 VueJS,打开保存的文件(或下载)
问题描述
我正在努力解决我认为很简单的事情。
理想情况下,我想以与从浏览器下载时相同的提示保存我的 base64 文件,但是使用电容器应用程序似乎不可能。
所以我使用 FileSystem 将文件保存在Documents
目录上,效果很好,我也可以获取 uri 文件。但是因为没有迹象表明文件已保存,我想至少尝试使用本机应用程序打开文件。我注意到有科尔多瓦插件cordova-plugin-file-opener2
,但我似乎无法让它与电容器 3 和 VueJs 一起工作,没有科尔多瓦。
也许是我想多了?有没有办法用电容器下载文件或打开文件?
对于网络视图(不是本机应用程序),我正在使用隐藏的下载按钮,但这在电容器应用程序中根本不起作用
这是我当前的代码
Filesystem.writeFile({
data: pdf,
path: `${this.fileName}.pdf`,
directory: Directory.Documents,
}).then(() => {
Filesystem.getUri({
path: `${this.fileName}.pdf`,
directory: Directory.Documents,
}).then(res => {
// open file here with my res.uri ?
);
});
解决方案
我遇到了同样的问题。我通过使用官方电容器“共享”插件解决/解决了它,因此用户可以选择她想要对文件执行的操作。https://capacitorjs.com/docs/apis/share
我没有找到任何其他解决方案来显示或下载这些私人存储的文件。FileOpener 在 Android 上似乎有很多问题,在 iOS 上也不起作用。
推荐阅读
- javascript - 使用函数阻止了我的代码工作?
- ruby-on-rails - 使用 MiniTest,在尝试测试“omniauth-google-oauth2”gem 时,我不断收到 302 重定向到我的登录路径
- arrays - 订阅 Angular 6
- ssis - 如何在 SSIS 的 Box.com 文件夹中搜索新文件以检测新文件并处理此文件中的数据?
- turbo-c - 以未定义方式表现的双重数据类型
- javascript - 如何在 SlickGrid 中对服务器端的数据进行分组
- javascript - 这没有在mounted() 中定义
- android - 在 baseAdapter 上显示蓝牙 Le 设备
- javascript - 如何获得框架框顶点坐标?
- xcode - 设置条带firebase云功能