当前位置: 首页 > wzjs >正文

大学生帮别人做网站网站建设企业

大学生帮别人做网站,网站建设企业,保定建站服务,青岛行业网站建设电话Electron Vue 实现系统消息通知与点击跳转页面 在 Electron 应用开发中,系统通知(Notification)是提高用户体验的重要手段。配合 Vue 路由实现“点击通知跳转到指定页面”,可以满足如消息提醒、任务完成、系统告警等多种业务场景…

Electron + Vue 实现系统消息通知与点击跳转页面

在 Electron 应用开发中,系统通知(Notification)是提高用户体验的重要手段。配合 Vue 路由实现“点击通知跳转到指定页面”,可以满足如消息提醒、任务完成、系统告警等多种业务场景。

本文将基于 electron-vite-vue 项目,介绍如何:

  • ✅ 从渲染进程触发系统通知
  • ✅ 在主进程监听通知点击事件
  • ✅ 跳转应用内指定页面

📦 项目结构概览

electron-vite-vue/
├── electron/
│   ├── main/
│   │   └── notification.ts     ← 通知与点击逻辑
│   ├── preload/
│   │   └── index.ts            ← 暴露 sendNotification API
├── src/
│   ├── App.vue                 ← 触发按钮
│   ├── router/index.ts         ← 监听跳转

🔧 主进程:发送通知并监听点击

electron/main/notification.ts 中:

import { Notification, BrowserWindow, ipcMain } from 'electron'export function setupNotification(win: BrowserWindow) {ipcMain.on('notify-with-path', (_, { title, body, path }) => {const notification = new Notification({title,body,// @ts-ignoredata: path,})notification.on('click', () => {if (win.isMinimized()) win.restore()win.show()win.focus()const targetPath = notification.datawin.webContents.send('navigate-to', targetPath)})notification.show()})
}

并在主入口中引入:

import { setupNotification } from './notification'
setupNotification(win)

🛡️ preload 层:暴露 sendNotification 方法

electron/preload/index.ts 中:

contextBridge.exposeInMainWorld('electronAPI', {sendNotification: (title: string, body: string, path: string) => {ipcRenderer.send('notify-with-path', { title, body, path })},onNavigate: (cb: (path: string) => void) => {ipcRenderer.on('navigate-to', (_, path) => cb(path))}
})

🧪 渲染进程:发送通知 + 监听跳转

App.vue

<template><button @click="sendNotice">发送通知</button>
</template><script setup lang="ts">
function sendNotice() {window.electronAPI.sendNotification('有新消息','点击查看详情','/notice/detail/42')
}
</script>

🧭 Vue Router 中监听跳转事件

main.tsApp.vue 中:

import router from './router'window.electronAPI.onNavigate((path) => {router.push(path)
})

🧠 补充:通知权限处理建议

在首次发送通知前,可判断是否已有权限:

if (Notification.permission === 'granted') {new Notification('标题', { body: '内容' })
} else if (Notification.permission !== 'denied') {Notification.requestPermission().then(permission => {if (permission === 'granted') {new Notification('标题', { body: '内容' })}})
}

注意:Electron 无法跳转系统设置页面,需要用户手动开启通知权限。


✅ 总结

通过上述封装,我们实现了:

  • ✅ 渲染进程安全调用系统通知
  • ✅ 主进程监听通知点击并发出跳转事件
  • ✅ Vue 路由完成页面跳转

该结构清晰、易扩展,适用于消息提醒、通知中心、工作流等 Electron 应用场景。


如需了解更多 Electron 通信结构封装,建议阅读:

👉 Electron IPC 通信三层封装实践

欢迎点赞、收藏、分享 🙌

http://www.dtcms.com/wzjs/247298.html

相关文章:

  • 长沙网站备案index百度指数
  • wordpress固定链接设置.htmlseo关键词排名价格
  • 旅游电商网站开发如何进行网络营销策划
  • 珠海网站建设杰作科技推广引流哪个软件最好
  • html怎么做网站设计网站优化公司哪家效果好
  • 衡水提供网站制作公司报价有道搜索
  • 酒类网站建设方案百度app 浏览器
  • 武汉市做网站哪个平台推广效果好
  • 君临天下游戏网站开发者电商运营一天都干啥
  • 网站建设公司做销售好不好?seo长尾关键词
  • 石家庄城乡建设网站网站注册时间查询
  • 小公司做网站seo入门
  • 大兴网站设计合肥seo按天收费
  • 南昌网站设计公司网络推广的常用方法
  • 网站开发 源码最近军事新闻热点大事件
  • 成都网站建设麦格思承接网络推广外包业务
  • 广州专业做网站公司有哪些江苏网站建设制作
  • 镇江seo网站优化百度网盘搜索神器
  • wordpress tag 插件网站应该如何进行优化
  • 自己做的网站怎么上传文章seo网络排名优化技巧
  • 单页面网站复制太原做网站哪家好
  • 有什么好的免费网站做教育宣传汕头网站建设优化
  • 网站开发属于什么科目杭州网站优化推荐
  • 支付网站开发费可以做无形资产学大教育一对一收费价格表
  • 英文外贸网站百度推广关键词和创意
  • 莱芜今日信息广告平台seo线上培训多少钱
  • 可以做外贸私单的网站seo超级外链发布
  • 做内贸现在一般都通过哪些网站网站友情链接美化代码
  • 四川住房建设和城乡建设厅网站太原百度网站快速排名
  • 唐山网站从哪里找济南百度推广公司电话