【问题标题】:Download and store files inside electron app在电子应用程序中下载和存储文件
【发布时间】:2016-06-12 08:16:44
【问题描述】:

我正在开发一个应用程序,该应用程序在第一次运行时必须通过 API 从网络下载文件(图像 jpg/png),然后将其存储在本地,因此不再需要在线连接(用户可以运行更新在线时通过 api 下载更新的数据(如果有可用的更新)。

我知道桌面应用程序的工作方式非常不常见,但主要目标是将桌面应用程序数据与网络应用程序同步。

到目前为止,我找到了一个 npm 插件request (link) 来检查用户是否连接到互联网。

我不确定是否可以在电子应用程序内下载和存储文件(所以它在应用程序外是不可见的)?你能推荐必要的插件/工具来实现这个目标吗?

我们将不胜感激。

【问题讨论】:

  • 你下载的是什么数据?我会说应用程序以您描述的方式执行此操作是很不寻常的。我建议将所有下载的数据保存到用户的主目录(例如 Linux 中的 /home/myuser/myapp)。
  • 我已经更新了问题。下载数据的原因是数据通过网络应用程序动态变化,该应用程序处理所有数据,然后分发到其他网络和移动应用程序。现在客户也想要它的桌面版本。

标签: javascript node.js npm desktop-application electron


【解决方案1】:

好吧,您可以使用来自this answer 的 sn-p 并以节点方式进行操作。

var http = require('http');
var fs   = require('fs');
var app  = require('remote').require('app')

var file = fs.createWriteStream(app.getDataPath() + "externalFiles/file.jpg");
var request = http.get("http://url-to-api/some-image.jpg", function(response) {
  response.pipe(file);
});

您可以使用App Data Path 来存储文件。当然,你必须从 URL 中解析文件名,然后你就可以开始了。

你也可以使用网页内容

https://github.com/atom/electron/blob/master/docs/api/web-contents.md

然后您的应用程序将作为浏览器运行,并且必须通过使用本地存储或其他一些技术来添加离线支持。

更新:

今天有几个包可以帮助解决这个问题,比如https://github.com/sindresorhus/electron-dl

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 2017-10-10
  • 1970-01-01
相关资源
最近更新 更多