阅读 230

Web前端技术开发桌面应用---Electron 底部通知消息的制作和全局快捷键的注册

底部通知消息的制作

对话框通过三小节的学习,小伙伴们已经掌握的非常好了,接下来学习一下消息通知。Electron的消息通知是通过H5window.Notification来实现的。

window.Notification的属性参数

  • title: 通知的标题,可以显示在通知栏上

  • option: 消息通知的各种属性配置,以对象的形式进行配置

如果想详细的学习,可以直接看H5NotificationAPI进行学习。

点击按钮提示消息

那直接来作一个实例,当我们点击一个按钮时,会自动给我i们弹出提示消息,告诉我们有新的订单。 新建一个index7.html,然后编写如下代码。

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title> </head> <body>     <button id="myBtn">通知消息</button>     <script>         const myBtn = document.querySelector('#myBtn');         var option = {             title:'通知',             body:'你有一个新的订单消息'         };         myBtn.onclick = () => {             new window.Notification(option.title,option);         }     </script> </body> </html> 复制代码

然后改变一下main.js中的代码,让他渲染index7.html

mainWindow.loadFile("index7.html"); 复制代码

然后在终端中输入electron . 进行查看效果就可以了。这期就到这里。 在这里插入图片描述


注册全局快捷键

全局快捷键模块就是globalShortcut,意思就是我们打开软件以后,按键盘上的快捷键,就可以实现用快捷键实现特定的功能,相当于用键盘快捷键触发某些事件。

注册快捷键

globalShortcut是主进程中的模块,而且注册的都是全局的快捷键,所以你尽量写在main.js中。打开main.js,然后先引入globalShortcut,代码如下:

var  globalShortcut = electron.globalShortcut 复制代码

引入后,我们现在的需求是按快捷键ctrl+e键后,打开百度baidu.com。这时候使用`globalShortcut.register`方法就可以实现,全部代码如下:

var electron = require('electron')  var app = electron.app    var  globalShortcut = electron.globalShortcut var BrowserWindow = electron.BrowserWindow;   var mainWindow = null ;   app.on('ready',()=>{     mainWindow = new BrowserWindow({width:800,height:600})       globalShortcut.register('ctrl+e',()=>{         mainWindow.loadURL('https://baidu.com')       })     mainWindow.loadFile('index7.html')       //监听关闭事件,把主窗口设置为null     mainWindow.on('closed',()=>{         mainWindow = null     }) }) 复制代码

这里需要注意的是,注册全局的快捷键必须在ready事件之后,才能注册成功。

检测快捷键是否注册成功

可以使用globalShortcut.isRegistered()方法,来检测快捷键是否注册成功,因为你可能同时打开很多软件,它们已经占用了一些快捷键的组合,所以并不是你100%可以注册成功的。

let isRegister = globalShortcut.isRegistered ? 'Register Success' : 'Register Fail'; console.log(isRegister); 复制代码

这样就进行了检测,如果你在实际开发中,可能当有冲突时,软件是支持可以修改快捷键。 在这里插入图片描述

注销快捷键

因为我们注册的是全局的快捷键,所以当我们关闭软件或者窗口时,记得一定要注销我们的快捷键。防止关闭后打开其他软件和他们的快捷键冲突。

app.on('will-quit',function(){     //注销全局快捷键的监听     globalShortcut.unregister('ctrl+e')     globalShortcut.unregisterAll() }) 复制代码

在这里插入图片描述 在这里插入图片描述

这期学的内容就到这里了,这节的内容在Electron开发中都会用到。


作者:CreatorRay123
链接:https://juejin.cn/post/7035494774899474468

 伪原创工具 SEO网站优化  https://www.237it.com/


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐