3

我正在使用 node-webkit 为我的学生开发应用程序,并提供一站式解决方案,我需要每月更新一次 node-webkit 存档。有没有办法我可以做到这一点?基本上我每个月只需要替换一个 html 文件,比如“page1.html”。我用谷歌搜索但不知道从哪里开始。

4

2 回答 2

2

在 Mac 上,您可以访问自己的应用程序的文件系统,例如

$ ls -lh /Applications/Shock.app/Contents/Resources/app.nw/
[...]
-rw-r--r--  1 jordi  staff   2,3K 29 gen 01:47 index.html
-rw-r--r--  1 jordi  staff   467B 29 gen 01:47 lecturenotes.html
[...]

因此,如果您将新版本放在特定 URL 上,您可以获取它并在应用程序中重写 HTML 文件:

var request = require('request');
request('http://www.your-own-server.com/app/lecturenotes.html', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    var fs = require('fs');
    fs.writeFileSync('/Applications/Shock.app/Contents/Resources/app.nw/lecturenotes.html', body);
  }
});

我认为类似的事情也发生在 Linux 上。不幸的是,Windows 版本使用二进制包到 exe 中,所以这个技巧不适用于最后一种情况。

于 2014-03-04T00:18:27.140 回答
1

我已经按照https://github.com/nwjs/nw.js/wiki/App中的描述使用了 App.dataPath

您可以将 html 文件下载到该路径中。App.dataPath 独立于平台工作,虽然位置因平台而异,但您的应用程序将有一个通用路径来引用 html 文件。

摘录:

在用户目录中获取应用程序的数据路径。视窗:%LOCALAPPDATA%/;Linux:~/.config/;OSX:~/Library/Application Support/ 清单中的字段在哪里。

于 2015-10-01T05:39:54.297 回答