客户端开发(Electron)发送通知

简介: 客户端开发(Electron)发送通知

  Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。



本篇说明:


    在windows,macOS,linux操作系统均为开发者提供了向用户发送通知的API,也是客户端开发标配的功能之一,在Electron中主进程和渲染进程显示的方式不太一样,我们用实际的案例来演示一下。


环境说明:


  1. 设备环境Windows;
  2. 代码环境:快速入门


在渲染进程中显示通知:


  • 准备index.html内容,提供两个操作按钮和加载渲染脚本。
<body>
    <button id="clickme">渲染进程发送通知</button>
    <button id="clickme2">主进程发送通知</button>
    <script src="renderer.js"></script>
</body>
复制代码
  • 渲染进程中绑定第一个button用来在渲染进程发送通知
  • 主要用到Notification模块,并且点击后可以获的反馈
document.getElementById("clickme").addEventListener("click", () => {
  new Notification("今日更文:客户端开发(Electron)主题切换", {
    body: "「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。",
  }).onclick = () => {
    console.log("[ 通知被点击了 ]");
  };
});
复制代码


在主进程中发送通知:


  • 主进程发送通知我们还是要在渲染脚本来触发
document.getElementById("clickme2").addEventListener("click", () => {
  window.send.notice(
    "客户端开发(Electron)URL远程启动",
    "「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。"
  );
});
复制代码
  • 可以看到有一个send.notice函数(桥接),我们还是在preload脚本中定义:
const { contextBridge } = require("electron");
const { ipcRenderer } = require("electron/renderer");
contextBridge.exposeInMainWorld("send", {
  notice: (title, content) => ipcRenderer.send("send:notice", title, content),
});
复制代码
  • 在主进程实现监听并发送通知:
ipcMain.on("send:notice", (event, ...args) => {
  new Notification({
    title: args[0],
    body: args[1],
  }).show();
});
复制代码


总结:


本篇涉及到两个知识点:

  1. 渲染进程=>主进程通信
  2. 通知发送模块使用
  3. 桥接函数定义并传参



相关文章
|
10天前
|
存储
最新款electron38+vite7+vue3.5+pinia3桌面客户端聊天程序
最新原创electron38+vite7+vue3 setup+pinia3+element-plus电脑端仿微信聊天EXE应用。
29 1
|
8月前
|
人工智能 移动开发 JavaScript
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
816 18
|
5月前
|
人工智能 缓存 自然语言处理
electron35-vue3-deepseek客户端流式输出AI对话系统
Electron35-DeepSeek桌面端AI系统|vue3.5+electron+arco客户端ai模板。2025跨平台ai实战electron35+vite6+arco仿DeepSeek/豆包ai流式打字聊天助手。
214 3
|
10月前
|
JSON JavaScript 前端开发
开发桌面程序-Electron入门
【10月更文挑战第16天】Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用的框架,嵌入了 Chromium 和 Node.js。本文介绍了如何搭建 Electron 开发环境,包括安装 Node.js、创建项目、配置 main.js 和打包应用。通过简单的步骤,你可以快速创建并运行一个基本的 Electron 应用程序。
479 4
开发桌面程序-Electron入门
|
11月前
|
前端开发 JavaScript API
electron多标签页模式更像客户端
electron多标签页模式更像客户端
705 7
electron多标签页模式更像客户端
|
移动开发 开发框架 JavaScript
Vue3 Vite electron 开发桌面程序
Vue3 Vite electron 开发桌面程序
486 0
|
安全 前端开发 Android开发
我的 Electron 客户端被第三方页面入侵了
公司有个内部项目是用 Electron 来开发的,有个功能需要像浏览器一样加载第三方站点。 本来一切安好,但是某天打开某个站点的链接,导致 整个客户端直接变成了该站点的页面。 这一看就是该站点做了特殊的处理,经排查网页源码后,果然发现了有这么一句代码。
|
前端开发
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
|
JavaScript 开发工具
Electron 开发过程中主进程的无法看到 console.log 输出怎么办
Electron 开发过程中主进程的无法看到 console.log 输出怎么办
|
JavaScript 网络安全 iOS开发
如何用 Electron 打包chatgpt-plus.top并生成mac客户端
如何用 Electron 打包chatgpt-plus.top并生成mac客户端
232 0