Appearance
自动更新程序
开发人员经常发布其应用程序的新版本。Neutralenojs为所有受支持的操作系统提供了一个简单且可扩展的软件更新机制。 如您所知,Neutralizojs将所有应用程序资源捆绑到resources.neu
文件中。自动更新机制基础的操作就是将现有的resources.neu
替换为网络上最新的应用程序资源。
创建更新清单
当你要求Neutralizojs检查更新时,它会通过网络检查更新清单。更新清单是指具有以下格式的JSON文档。
json
{
"applicationId": "js.neutralino.sample",
"version": "0.0.2",
"resourcesURL": "http://example.com/updater_test/update_res.neu",
"data": {
}
}
applicationId
String: 应用程序id。您需要使用与neutralizojs.config.json
中相同的id。否则,更新检查操作将不会继续version
String: 应用版本resourcesURL
String: 下载resources.neu
的链接。您可以根据需要使用任何文件名,但请确保响应头信息Content-Type: application/octet-stream
data
Object (可选): 有关更新的其他数据,接受JSON值
部署更新清单和资源
根据您的访问要求,在互联网或内部网络上托管应用程序清单和资源文件。您可以通过设置静态服务器或将更新清单和资源文件放入应用程序的资源目录来在本地测试自动更新。
此外,如果需要,您可以设置DevOps管道来自动更新应用程序。如果您更新了Neutranojs服务,用户必须再次下载/安装该应用程序, 因为自动更新机制只更新应用程序资源(包括NeutranoJS客户端)。
编写代码以更新您的应用程序
需要检查更新时,调用以下函数。
javascript
try {
let url = "http://example.com/updater_test/update_manifest.json";
let manifest = await Neutralino.updater.checkForUpdates(url);
}
catch(err) {
// Handle errors
}
接下来,您可以使用manifest
对象来比较版本。
javascript
try {
let url = "http://example.com/updater_test/update_manifest.json";
let manifest = await Neutralino.updater.checkForUpdates(url);
if(manifest.version != NL_APPVERSION) {
await Neutralino.updater.install();
await Neutralino.app.restartProcess();
}
}
catch(err) {
// Handle errors
}
如上面的代码片段所示,您可以调用Neutralino.updater.install
来下载清单执行更新。然后,使用app.restartProcess
函数重新启动应用程序。