Electron 判断网络环境
Electron 判断网络环境
最近在学用 Electron 实现桌面程序。在尝试使用原生的 EventTarget.addEventListener()
监听 window.online
和 window.offline
事件,但是我在调用函数并手动断网之后,却发现并没有触发监听来弹出自定义通知。
于是我分别去了 Electron 官方文档 在线/离线事件探测 、 NavigatorOnLine.onLine 及其指向的 Document.ononline 文档,得到了一个结果:
所谓的“在线/离线事件”并不指的是与互联网的连接状态,而是指主机的联机与脱机状态。
它所指的是:
在 Chrome 和 Safari 中,如果浏览器连接不上互联网、路由器、局域网(LAN)、主机虚拟局域网(无论是 Windows 的 WSL ,还是 VMware 的虚拟局域网),就是离线状态;否则就是在线状态。
所以不能通过 EventTarget.addEventListener()
监听事件来判断有无与互联网连接。
这里推荐使用 ping
实现。请参考 npm qiao-is-online 来实现 Electron 、 Node.js 来实现对互联网连接判定。
qiao-is-online
qiao-is-online 包如何实现 ping 请参考:https://www.cnblogs.com/Yogile/p/15010261.html
更多参考
-
用 javascript 实现 ping 一个主机,仅测试是否能够连接。
这个是使用 image 预加载进行,实际上就是 HTTP GET 请求,现在网上都是这种,如何捕获异常并处理是一大问题。
-
如果想要 ping google 可以参考这个,或者自行打包。
原文地址:https://www.cnblogs.com/Yogile/p/15010264.html
- Java基础-25(05)图形用户界面编程GUI
- Java基础-25(06)图形用户界面编程GUI
- 51. Socket服务端和客户端使用TCP协议通讯 | 厚土Go学习笔记
- 备库报警邮件的分析案例(二) (r7笔记第15天)
- Gotorch - 多机定时任务管理系统
- 备库报警邮件的分析案例(三)(r7笔记第16天)
- 简单易学的机器学习算法——神经网络之BP神经网络
- 24(02)多线程锁,线程通讯,线程组,线程池,多线程三种方式,匿名内部类,定时器,设计模式,单例模式,Runtime
- Go代码打通HTTPs
- 一个简单的MySQL参数导致的连接问题解惑(r7笔记第33天)
- [基础篇]Go语言变量
- [转载]Golang 编译成 DLL 文件
- [转载]Go JSON 技巧
- 简单易学的机器学习算法——Rosenblatt感知机的对偶解法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法