【问题标题】:Node-webkit app- how to update it?Node-webkit app-如何更新它?
【发布时间】:2013-12-07 17:11:12
【问题描述】:

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

【问题讨论】:

  • 告诉我们更多关于您的设置 - 学生可以访问互联网吗?应用程序必须离线工作吗?我做过类似的事情,我只需要了解您的情况,也许我的解决方案可以为您工作。
  • 是的,他们可以访问互联网。除了可以实施的更新功能外,它大部分都将离线工作。将有一个名为“lecturenotes.html”的文件,我希望在一个月或一周内更新一次。我的想法是用一个新的替换打包的lecturenotes.html。我不确定是否可以完成,因为我对 node-webkit 很陌生。
  • 啊,我的解决方案是桌面应用,但是数据是从服务器拉出来的,所以不适合你的场景。您可以从服务器下载数据作为 zip 文件并在本地解压缩,然后读取并显示它。
  • 这个要求有什么更新吗?很想知道最后发生了什么。

标签: node-webkit


【解决方案1】:

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

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

摘录:

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

【讨论】:

    【解决方案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-04-22
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      相关资源
      最近更新 更多