从桌面应用程序(ElectronJS)下载JSON对象作为文件

时间:2018-06-29 09:56:07

标签: javascript node.js electron

我已经使用ElectronJS设计了应用程序,并且已经使用downloads转换为了桌面应用程序。将JSON对象下载为文件不会自动下载到我的Popup window文件夹中,而是要求<a id="downloadAnchorElem" style="display:none"></a>选择保存文件的路径。 我使用过的以下代码:

HTML:var dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(storageObj)); var dlAnchorElem = document.getElementById('downloadAnchorElem'); dlAnchorElem.setAttribute("href", dataStr ); dlAnchorElem.setAttribute("download", "scene.json"); dlAnchorElem.click();

ElectronJS

如果我将此代码作为正常的Web应用程序运行,它将自动下载,而如果我使用ReflectionMethod 自动下载在桌面应用程序上运行该代码。请告诉我为什么会这样,并且可以选择其他解决方案。

1 个答案:

答案 0 :(得分:0)

electron-dl 是您的朋友!正如其描述在github中一样,它确实简化了Electron应用程序的文件下载。

这是一个如何启动下载的示例。

const {app, BrowserWindow, ipcMain} = require('electron');
const {download} = require('electron-dl');

ipcMain.on('download-btn', (e, args) => {
    download(BrowserWindow.getFocusedWindow(), args.url)
        .then(dl => console.log(dl.getSavePath()))
        .catch(console.error);
});

希望这会有所帮助!