用Electron创建跨平台应用(第四弹) 监听当前是否联网

简介: Electron主要用于创建跨平台的桌面软件, 既然是桌面软件, 那即使是断网的情况下, 无需联网的功能也应该可以正常使用.为了提升用户的体验, 我们应该能根据当前是否可以连通互联网, 对用户做出提醒(类似桌面qq在线, 离线, 的提醒) .
  • Electron主要用于创建跨平台的桌面软件, 既然是桌面软件, 那即使是断网的情况下, 无需联网的功能也应该可以正常使用.
  • 为了提升用户的体验, 我们应该能根据当前是否可以连通互联网, 对用户做出提醒(类似桌面qq在线, 离线, 的提醒) .
  • 为了更好的交互体验, 我们也可以将 离线不可用的功能按钮,变成灰色失效的状态.

Demo演示

源码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>检测在线或离线</title>
</head>

<body>
    <style>
        #desc {
            font-size: 20px;
            color: #44A1F8;
        }
    </style>
    <div id="desc">
        检测在线或离线的Demo
    </div>
    <script>
    window.addEventListener('online', function() {
        let option = {
            title: "有网了!",
            body: "机子帮你开好了, 快来上网啊~",
            icon: "../static/online.ico",
        };
        // 创建上线通知
        new window.Notification(option.title, option);

        console.log('有网络了');
    })
    window.addEventListener('offline', function() {

        let option = {
            title: "断网了!",
            body: "尝尝10亿伏特!还敢上网不?(炮姐如是说!)",
            icon: "../static/offline.ico",
        };
        // 创建上线通知
        new window.Notification(option.title, option);
        console.log('断网了');
    })
    </script>
</body>

</html>

检测在线与离线的api非常容易实现, 在window上绑定两个回调函数, 就实现了监听网络的功能(用js的回调函数实现检测在线与离线的功能真的非常简洁, 同样的, 用监听网络在线离线的逻辑来解释"js回调函数"的思想也是非常贴切)

小结:

  • Electron与传统的网站在线应用相比, Electron的一大优势就是能创建桌面应用, 应用离线可用, 对于检查网络这种常见需求, 能快速进行实现
  • Electron与传统桌面软件相比, 布局非常简单, UI定制性极强, 随便引入几个UI美化的库, 界面就可以做的非常漂亮, 也验证"颜值即正义"的真理

这是用Electron创建跨平台应用的第四弹, 如果你想对Electron有更详细的了解, 欢迎查看其它章节的内容目录: https://www.jianshu.com/p/3b295544c78e

目录
相关文章
|
22天前
|
缓存 JavaScript 前端开发
高效打造跨平台桌面应用:Electron加载服务器端JS
【9月更文挑战第17天】Electron 是一个基于 Chromium 和 Node.js 的开源框架,允许使用 HTML、CSS 和 JavaScript 构建跨平台桌面应用。加载服务器端 JS 可增强应用灵活性,实现代码复用、动态更新及实时通信。通过 HTTP 请求、WebSocket 或文件系统可实现加载,但需注意安全性、性能和兼容性问题。开发者应根据需求选择合适方法并谨慎实施。
|
4月前
|
资源调度 JavaScript 前端开发
IM跨平台技术学习(十一):环信基于Electron打包Web IM桌面端的技术实践
这次借着论证 Web IM端 SDK 是否可以在 Electron 生成的桌面端正常稳定使用,我决定把官方新推出的 webim-vue3-demo,打包到桌面端,并记录了这次验证的过程以及所遇到的问题和解决方法。
76 2
|
2月前
|
容器 iOS开发 Linux
震惊!Uno Platform 响应式 UI 构建秘籍大公开!从布局容器到自适应设计,带你轻松打造跨平台完美界面
【8月更文挑战第31天】Uno Platform 是一款强大的跨平台应用开发框架,支持 Web、桌面(Windows、macOS、Linux)及移动(iOS、Android)等平台,仅需单一代码库。本文分享了四个构建响应式用户界面的最佳实践:利用布局容器(如 Grid)适配不同屏幕尺寸;采用自适应布局调整 UI;使用媒体查询定制样式;遵循响应式设计原则确保 UI 元素自适应调整。通过这些方法,开发者可以为用户提供一致且优秀的多设备体验。
54 0
|
3月前
|
Rust 前端开发 JavaScript
IM跨平台技术学习(十三):从理论到实践,详细对比Electron和Tauri的优劣
本文主要介绍了目前比较流行的桌面应用跨平台开发技术及其架构,并以实战的方式对比了 Electron 和 Tauri 的优势和劣势,以及桌面跨平台应用开发的技术趋势。
53 0
|
5月前
|
前端开发 数据可视化 iOS开发
基于electron快速将任意网站打包成跨平台的桌面端软件
基于electron快速将任意网站打包成跨平台的桌面端软件
139 1
|
5月前
|
Rust 前端开发 JavaScript
IM跨平台技术学习(十):快速对比跨平台框架Electron、Flutter、Tauri、React Native等
在本文中,我们将比较五种流行的桌面应用程序开发框架:Electron、Flutter、Tauri、React Native 和 Qt,希望可以帮助你根据项目需求做出明智的技术选型决策。
414 2
|
11月前
|
Web App开发 前端开发 JavaScript
用electron打包前端应用初体验
用electron打包开发桌面应用遇到的各种问题和解决办法
162 1
|
JavaScript 前端开发 Linux
Vue.js + Electron 的跨平台桌面应用程序开发
本文介绍了 Vue.js 和 Electron 的基本特点和原理,并分析了它们在桌面应用程序开发中的优势和应用场景。在基于 Vue.js 和 Electron 的桌面应用程序开发实践中,本文详细介绍了项目的搭建和配置,包括环境的准备、项目的初始化和依赖的安装等步骤。然后,本文介绍了使用 Vue.js 进行界面设计和组件开发的方法,并提供了相关的示例代码和实现细节。接下来,本文探讨了 Electron 主进程和渲染进程的开发,包括窗口管理、文件系统访问和与底层系统交互等方面的内容。最后,本文对基于 Vue.js 和 Electron 的桌面应用程序开发做出了总结,并展望了未来的发展方向和应用前景
798 2
|
缓存 监控 JavaScript
IM跨平台技术学习(九):全面解密新QQ桌面版的Electron内存优化实践
本文我们将和大家分享新版 QQ 在内存优化方面的探索和阶段性优化进展。虽然本文的讨论主要集中在 Windows 平台,但由于 Electron 的跨平台特性,大部分优化措施也同样适用于 macOS 和 Linux 平台。
214 0
|
前端开发 Linux iOS开发
IM跨平台技术学习(八):新QQ桌面版为何选择Electron作为跨端框架
在瞬息万变的互联网行业中,年过二十四的即时通讯IM应用 QQ 堪称超长寿的产品,见证了中国互联网崛起的完整历程。 然而,如今这个元老级产品经历了一次从内到外彻底的重构。在这次重构中,QQ 选择了 Electron 作为 UI 跨平台开发框架。 尽管 Electron 被 Slack、Visual Studio Code 和 Discord 等大型产品广泛使用,但也引发了一些网友的担忧,例如内存占用、安装包体积和启动速度等方面的问题。本文内容整理自 QQ 技术团队的采访,我们一起来看看QQ团队选择Electron作为桌面版跨端框架背后的决策与思考。
436 0