Electron托盘&开机自启动

栏目: IT技术 · 发布时间: 4年前

内容简介:在做前端项目时,需要将 Web 项目打包成 Win 应用,使用 Electron 相关技术。这个系列是整理 Electron 学习中遇到的问题和常见知识点,留做记录方便后续复习。本篇介绍:在 Electron 中提供了系统托盘的 API - [Tray],参考后面的链接。所有需要引入

在做前端项目时,需要将 Web 项目打包成 Win 应用,使用 Electron 相关技术。这个系列是整理 Electron 学习中遇到的问题和常见知识点,留做记录方便后续复习。

本篇介绍:

  • Electron 系统托盘实现
  • Electron 开机自动启动

系统托盘 && 开机自启

在 Electron 中提供了系统托盘的 API - [Tray],参考后面的链接。所有需要引入 TrayMenu

// main.js
import { Menu, Tray } from 'electron'
// 定义全局托盘
let tray = null // 局部的会销毁。《=== 如果不定义成全局的,应用启动后托盘一闪就没了,^_^

目标系统是 win ,其他的平台限制请参考文档。 通过 process.platform 限制系统。

// 创建托盘
function createTray() {
  // 系统托盘: window 系统
  if (process.platform === 'win32') {
    const icon =
      process.env.NODE_ENV === 'development'
        ? path.join(__dirname, 'bundled/favicon.ico')
        : path.join(__dirname, 'favicon.ico') // 指定托盘图标,推荐使用 ico 图标。

    // 创建托盘实例
    tray = new Tray(icon)
    // 上面托盘实例创建了,需要定义托盘中的 Menu 选项。
    // 这里使用 buildFromTemplate 静态方法。
    // 第一个:开机自启动
    // 第二个:退出
    let menu = Menu.buildFromTemplate([
      {
        label: '开机启动',
        checked: app.getLoginItemSettings().openAtLogin, // 获取当前自启动状态
        type: 'checkbox',
        click: () => {
          // 点击事件:切换自启动
          if (!app.isPackaged) { // 生成环境
            app.setLoginItemSettings({
              openAtLogin: !app.getLoginItemSettings().openAtLogin,
              path: process.execPath
            })
          } else {
            app.setLoginItemSettings({
              openAtLogin: !app.getLoginItemSettings().openAtLogin
            })
          }
        }
      },
      {
        label: '退出',
        click: function() {
          app.quit()
          app.quit()
        }
      }
    ])
    // 鼠标悬停时显示的文本
    tray.setToolTip('微笑榆山')
    // 设置上下文菜单
    tray.setContextMenu(menu)
    // 绑定点击事件:控制 窗口显示和隐藏。
    tray.on('click', () => {
      win.isVisible() ? win.hide() : win.show()
    })
  }
}

上面代码示例中完成对系统托盘和自启动的配置

注意:在配置图标时,需要区分开发环境。开发环境中加载根目录 .ico 图标,而生成环境中需要加载前端打包后所在的目录中的 .ico 图标。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

玩法变了

玩法变了

胖胡斐 / 电子工业出版社 / 2012-1 / 39.00元

《玩法变了:淘宝卖家运赢弱品牌时代》内容简介:目前网店的销售、运营、营销都碰到很多瓶颈,钱不再好赚,流量不再免费的情况下。网店常常陷入不断找流量的怪圈中,而真正潜心提升基本功的网店却拥有更多机会,网店需要突围。《玩法变了:淘宝卖家运赢弱品牌时代》系统地介绍整个电子商务零售领域的玩法变化,从网店基本功到网店品牌建设都有涉及。《玩法变了:淘宝卖家运赢弱品牌时代》将是网店用户重要的方法论和实践指南。一起来看看 《玩法变了》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具