我正在构建HTML5 phonegap应用程序。此应用程序导出数据,以便用户可以随时备份和还原。我正在使用以下javascript代码进行导出:
var dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(this.data, null, "\t"));
var dlAnchorElem = document.createElement('a');
dlAnchorElem.setAttribute("href", dataStr);
dlAnchorElem.setAttribute("download", "data.json");
document.body.appendChild(dlAnchorElem);
dlAnchorElem.click();
这将生成带有编码文件的锚标记,然后单击以下载。在浏览器上运行良好,但在已编译的Cordova应用程序中却无济于事。
经过研究,我发现默认的解决方案是为Cordova使用下载插件,特别是以下插件:https://github.com/apache/cordova-plugin-file-transfer
我阅读了文档,但似乎并没有将编码文件作为参数,而是将编码的URL作为下载地址。另外,它需要手机上的保存路径,我更喜欢将其保存为下载文件夹。
我的问题是:考虑到我正在动态生成JSON备份文件,实现此目标的最佳方法是什么?也许有一个AndroidManifest指令允许下载文件?
答案 0 :(得分:0)
经过研究并尝试了许多不同的技巧,我得出的结论是,cordova或可用的插件目前不允许本机使用。我的解决方案是,而不是写入文件系统,而是使用Web共享api允许用户导出他认为最佳的方式(包括文件,如果他选择Dropbox,OneDrive或Google Drive的话)。