客户端开发(Electron)系统级API使用2
Dear,大家好,我是“前端小鑫同学”,?长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。
监听快捷键:
实现网页按键事件的监听:
当我们在开发PC端网站时就可能会用到快捷键事件的监听处理,XDM有用到过吗?防止别人扒网页或者调试你的JavaScript页面的时候我们就会禁用调开发者工具,我们实现网页按键事件监听就和禁用调试开发者工具一样。
图中的代码通过监听onkeydown事件,来判断按键是否同时满足ctrl+s(ascll码),mateKey值Mac系统的花键。这种监听快捷键的特点是只能在窗口处于激活的时候才能触发,但你会发现我们使用系统的一些快捷键是可以唤醒应用的,那这种非激活状态应用的快捷键监听就只能通过Electron提供的系统级API来实现了。
实现全局按键事件的监听:
     我们在使用电脑软件时也遇到过快捷键冲突的问题,我们总是要更改一个新的快捷键来使用,那我们给应用注册一个全局快捷键监听的时候也要考虑是否避免常见的快捷键,或者我们在注册前就预先检测是否已被占用了。
- 注册的函数:globalShortcut.register('快捷键', '回调函数')
- 反注册函数:globalShortcut.unregister('快捷键')
- 判断是否被注册:globalShortcut.isRegistered('快捷键') 案例1:监听ctrl+k:
案例2:监听ctrl+shift+k:
案例3:监听ctrl+shift+数字键盘8:
注:监听最好在主进程中注册,在渲染进程注册可能会导致主进程异常,从而监听不到按键事件。 托盘图标的设置: 托盘图标指的就是在电脑底部的任务栏右侧经常会闪动的QQ头像,还有快捷设置离线状态的菜单等,我们就用Electron的API来实现一下这两个小功能吧。 注册并时图片闪烁:
- 通过简单的API就可以实现注册托盘:
new Tray(path)
,我们注册了一个安卓小logo。
- 闪烁的实现我们可以通过定时切换两种图片来实现:
托盘菜单设置:
菜单的创建和前一篇是一致的,我们同样适用的Electron提供的Menu对象,我们这次是将Menu的配置设置到实例化后的tray对象中。
总结:
本篇学习了在客户端应用中监听按键实现快捷键的两种方式,但也要注意避免快捷键的冲突和滥用,也学习了常见的托盘图标的设置和菜单的设置,知道了我们如何在有新消息送达时和QQ一样来闪烁起来,学习阶段化繁为简,实战时大刀阔斧,加油各位XDM。
相关文章
- Java/Kotlin 实现控制台输出日志保存到文件
- 使用Jitpack发布开源Java库
- JavaFx 软件重启功能实现
- JavaFx 实现按钮防抖
- Java/Kotlin 密码复杂规则校验
- JavaFx Tooltip悬浮提示使用及自定义
- JavaFx WebView使用研究
- JavaFx 监听剪切板实现(Kotlin)
- JavaFx全局快捷键实现(Kotlin)
- JavaFx 创建快捷方式及设置开机启动
- JavaXMail发送邮件功能实现
- Kotlin/Java 读取Jar文件里的指定文件
- 极路由4增强版B70(HC5962)刷机
- 当 xxl-job 遇上 docker → 它晕了,但我不能乱!
- RHCE环境准备 | 介绍
- 登云之路|腾讯大规模云原生技术实践案例图鉴
- 我做了一款vscode主题! Dapanna Theme
- 第一周好文分享(强推这个系列!)
- canvas详细教程! ( 近1万字吐血总结)
- canvas绘制动画原理及案例讲解(绘制小恐龙动画、时钟等)