electron 应用优雅的配置 about 信息

使用 electron 的 dialog + tray 托盘栏菜单优雅简单的配置 about 关于本应用的信息,效果下图所示。

electron & about

项目依赖

{
  "electron": "^24.4.1",
  "electron-builder": "^23.6.0",
  "electron-builder-squirrel-windows": "^24.5.0",
  "electron-log": "^4.4.8",
  "electron-updater": "^5.3.0",
  "electron-vite": "^1.0.23",
}

配置 Tray

export function initTrayMenu(tray, mainWindow) {
  const menu = Menu.buildFromTemplate(template)
  Menu.setApplicationMenu(menu)
  const logo = nativeImage.createFromPath(icon)
  tray = new Tray(logo)
  const contextMenu = Menu.buildFromTemplate([
    {
      label: '退出',
      click() {
        mainWindow.destroy()
        app.exit()
      },
    },
    {
      label: '重启',
      click() {
        app.relaunch()
        app.exit()
      },
    },
    {
      type: 'separator',
    },
    {
      label: '关于',
      click: showAboutInfo,
    },
  ])
  tray.setToolTip(`${productName} \n接口调试工具`)
  // tray.setTitle(`${productName}`)
  tray.setContextMenu(contextMenu)
  // 点击通知区图标实现打开关闭应用的功能
  // console.log(mainWindow.isVisible())
  tray.on('click', () => {
    if (mainWindow.isVisible()) {
      mainWindow.focus()
    } else {
      mainWindow.show()
      mainWindow.setSkipTaskbar(true)
    }
  })
}

dialog 内容配置

import { app, BrowserWindow, dialog, Menu, nativeImage, shell, Tray } from 'electron'
import { resetLocalData } from './globalShortcut'
import icon from '@res/logo.png?asset'
import logo from '@res/icons/128x128.png?asset'
import { productName, description, author } from '@package'
const isMac = process.platform === 'darwin'

export async function showAboutInfo() {
  await dialog.showMessageBox({
    type: 'info',
    buttons: ['关闭'],
    title: `关于 ${productName}`,
    message: `${productName} V${app.getVersion()} \n ${description} \n`,
    detail: `Copyright © 2023 ${author} \n${getSysBaseInfo()}`,
    defaultId: 0,
    icon: logo,
    // textWidth: 400,
  })
}

function getSysBaseInfo() {
  let vers = process.versions
  return ['electron', 'chrome', 'node', 'v8'].reduce((prev, k) => {
    prev += `\n${k}: ${vers[k]}`
    return prev
  }, '')
}

  • 大功告成,完美 ~

欢迎访问:天问博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值