等到网络连接后再启动节点webkit应用
Wait until internet connectivity to start the node webkit app
我有点失落,如何使应用程序等待,直到客户端有网络连接。应用程序的消费者不需要手动启动应用程序(他们不会非常精通计算机),应用程序将在用户登录到Windows/Linux/Mac机器时自动启动。在这种情况下,我如何确保在用户在计算机上的会话期间,一旦互联网连接可用,应用程序就会启动。我使用的一个选项是在启动前运行脚本提供的node-main参数。我的脚本代码是:-
isOnline = require('is-online');
online = false;
window.console.log("Hello");
var a = function () {
while(online == false) {
isOnline(function(err,_online) {
online = _online;
});
}
};
a();
Hello被记录,但随后我的应用程序开始加载,由于缺乏互联网连接而失败。
我之前的回答行不通。这里有一个应该,它每5秒检查一次互联网连接,只有在有连接时才退出。
var isOnline = require('is-online');
process.stdout.write("Hello'n");
var check = function() {
process.stdout.write("Checking...'n");
isOnline(function(err, _online) {
if (_online) {
// If you want to invoke a script directly, do so here.
// If you want to script to exit when there's a connection,
// just don't do anything here.
process.stdout.write("Online'n");
} else {
process.stdout.write("Offline'n");
setTimeout(check, 5000);
}
})
}
check();
您可以使用navigator对象来检查在线状态:
alert(navigator.onLine);
它返回一个布尔值,所以你可以很容易地使用这样的逻辑…
if(navigator.onLine){Proceed();} else {Whatever();}
做一个快速测试,如果你从电脑上拔出CAT5电缆,你应该得到一个假。
你也可以在IIFE中使用async-await语法:
;(async function onlineCheck() {
if(await isOnline())
run() // I enclosed all my code into a function named run.
else {
console.error("Retrying... Connection attempt falied at " + (new Date()).toString());
await onlineCheck();
}
})();
相关文章:
- 节点webkit应用程序与终端通话
- 如何保护节点webkit应用程序上的字体
- 节点Webkit's(nwjs)节点远程使用
- 节点webkit仅运行.js文件
- 节点webkit windows文件系统分离器
- 节点Webkit窗口上下文
- 节点webkit iframe访问父nw函数
- 节点 Webkit 文本到语音 API 不起作用
- 启动后我如何在节点 webkit 中获取窗口对象
- 如何为节点webkit创建加载屏幕
- 节点Webkit-尝试从Webkit目录输入枚举目录下的文件,但只返回目录路径
- 如何重新打开已经运行的节点webkit窗口应用程序
- 节点webkit后退/前进按钮状态检测
- IntelliJ IDEA节点Webkit调试不起作用
- 节点webkit:ReferenceError:_未定义
- 节点webkit中的Require('jquery ui')产生navigator not found错
- 节点WebKit和串行端口
- 音频传输android和节点webkit
- 使用节点webkit下载文件时出错(URL中的“chrome扩展名”)
- 将节点webkit nwdirectory绑定到ngmodel