Node-webkit 应用程序- 如何更新它?

3

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


告诉我们更多关于你的设置 - 学生们会有互联网接入吗?这个应用程序必须离线工作吗?我做过类似的事情,我只需要了解你的情况,也许我的解决方案可以适用于你。 - Ewald
是的,他们将拥有互联网访问权限。除了那个更新功能,它大部分时间都可以离线使用。将会有一个名为“lecturenotes.html”的文件,我计划每月或每周更新一次。我的想法是用新的文件替换打包好的“lecturenotes.html”。由于我对node-webkit还比较陌生,所以不确定是否可行。 - swapna
啊,我的解决方案是一个桌面应用程序,但数据是从服务器拉取的,所以它不适合你的情况。你可以从服务器下载数据并在本地解压缩,然后读取和显示它。 - Ewald
这个需求有任何更新吗?很想知道最终发生了什么。 - asyncwait
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文件,所以这个技巧对于最后一种情况不起作用。


1
我已经按照https://github.com/nwjs/nw.js/wiki/App中所述使用了App.dataPath。
您可以将html文件下载到该路径中。App.dataPath在各个平台上都能够独立工作,尽管位置因平台而异,但您的应用程序将有一个通用路径来引用html文件。
摘录:
获取应用程序在用户目录中的数据路径。Windows:%LOCALAPPDATA%/;Linux:〜/ .config /;OSX:〜/ Library / Application Support /其中字段在清单中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接