如何分发 nw.js 应用程序的更新

How to distribute an update for an nw.js app

随着 Chrome 网上商店应用程序即将消亡,我已经成功地 运行 将我的应用程序定位到 nw.js 我很惊讶它是多么的简单和如何 运行 第一次。我遇到的唯一棘手的事情是如何让我的应用程序图标显示在 mac.

不过我有点担心应用程序更新。有谁知道当用户使用我发布到我的网站供下载的新版本更新 nw.js 应用程序时,持久数据(索引数据库等)会发生什么情况?

还有谁能帮我看看如何实现自动更新。我的意思是这里的全部作品。检查更新需要什么代码,交付更新需要编写什么代码,安装更新需要什么代码。 Chrome 为我做了所有这些,我对服务器端编码一无所知。

mac 有 mac 商店支持: http://docs.nwjs.io/en/latest/For%20Users/Advanced/Support%20for%20Mac%20App%20Store/

IndexedDb、localstorage等会一直存在,直到应用名称不会改变。

对于自动更新:
有一个正在进行的自动更新程序的拉取请求。 https://github.com/nwjs/nw.js/pull/5722
到那时,自动更新您的应用程序代码的最简单方法是将您的应用程序代码托管在网络上并使用 nw.js 打开网页。 如果您想自动更新 nw.js 本身,那么您必须为此提供一个安装程序,并告诉用户下载 运行 安装程序,如果有新的更新。

文档(http://docs.nwjs.io/en/latest/For%20Users/Advanced/Autoupdates/#autoupdates)推荐使用node-webkit-updater和nwjs-autoupdater。其中node-webkit-updater是最老的解决方案,不再维护。它也有缺陷(例如,通过未签名的解压缩和系统特定的应用程序解压缩) 至于第二个(nwjs-autoupdater),我个人不喜欢安装 golang 只是为了让我的 NWJS 应用程序自动更新的想法...

作为替代方案,可以考虑 https://github.com/dsheiko/nw-autoupdater 它提供了一个 API(类似于 node-webkit-updater,但使用 async/await 更干净)来自定义应用程序中的自动更新流程,包括 download/install 进度