使用 Electron 将应用程序放入托盘

使用 Electron 将应用程序放入托盘

此系列文章的应用示例已发布于 GitHub: electron-api-demos-Zh_CN. 可以 Clone 或下载后运行查看. 欢迎 Star .

使用 tray 模块允许您在操作系统的通知区域中创建图标.

此图标还可以附加上下文菜单.

在浏览器中查看 完整 API 文档 .

托盘

支持: Win, macOS, Linux | 进程: Main

示例按钮使用 ipc 模块向主进程发送消息. 在主进程中, 应用程序会被告知在托盘中放置一个带有上下文菜单的图标.

在此示例中, 可以通过单击托盘图标上下文菜单中的 "移除" 或再次点击示例按钮来删除托盘图标.

主进程

const path = require('path')
const electron = require('electron')
const ipc = electron.ipcMain
const app = electron.app
const Menu = electron.Menu
const Tray = electron.Tray

let appIcon = null

ipc.on('put-in-tray', function (event) {
  const iconName = process.platform === 'win32' ? 'windows-icon.png' : 'iconTemplate.png'
  const iconPath = path.join(__dirname, iconName)
  appIcon = new Tray(iconPath)
  const contextMenu = Menu.buildFromTemplate([{
    label: '移除',
    click: function () {
      event.sender.send('tray-removed')
    }
  }])
  appIcon.setToolTip('在托盘中的 Electron 示例.')
  appIcon.setContextMenu(contextMenu)
})

ipc.on('remove-tray', function () {
  appIcon.destroy()
})

app.on('window-all-closed', function () {
  if (appIcon) appIcon.destroy()
})

渲染器进程

const ipc = require('electron').ipcRenderer

const trayBtn = document.getElementById('put-in-tray')
let trayOn = false

trayBtn.addEventListener('click', function (event) {
  if (trayOn) {
    trayOn = false
    document.getElementById('tray-countdown').innerHTML = ''
    ipc.send('remove-tray')
  } else {
    trayOn = true
    const message = '再次点击示例按钮移除托盘.'
    document.getElementById('tray-countdown').innerHTML = message
    ipc.send('put-in-tray')
  }
})
// 从图标上下文菜单中删除托盘
ipc.on('tray-removed', function () {
  ipc.send('remove-tray')
  trayOn = false
  document.getElementById('tray-countdown').innerHTML = ''
})

高级技巧

Linux中的托盘支持.

在只有应用程序指示器支持的 Linux 发行版上,用户需要安装 libappindicator1 来使托盘图标正常工作. 有关在 Linux 上使用托盘的更多详细信息请查看 完整 API 文档 .

如果这边文章对您有帮助, 感谢 下方点赞 或 Star GitHub: electron-api-demos-Zh_CN 支持, 谢谢.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Electron将Node.js程序封装成安卓应用需要经过一些额外的步骤,因为Electron主要是用于构建桌面应用程序。下面是一个大致的步骤: 1. 确保你已经安装了Node.js和Electron。 2. 在你的Node.js项目中,确保你的代码可以在Electron中正常运行。 3. 安装`electron-packager`: ```bash npm install electron-packager -g ``` 4. 创建一个新的文件夹,用于存Electron项目的源代码。 5. 在新文件夹中创建一个新文件,命名为`main.js`,作为Electron应用口文件。 6. 在`main.js`中,编写Electron应用的主要逻辑和窗口配置。 7. 在终端中,导航到项目文件夹,并使用以下命令打包你的Electron应用: ```bash electron-packager . MyApp --platform=android --arch=armv7 --electron-version=<electron-version> --overwrite ``` 其中,`. `表示当前目录,`MyApp`是生成的安卓应用的名称,`--platform=android`表示指定打包为安卓平台,`--arch=armv7`表示指定打包为ARMv7架构,`--electron-version=<electron-version>`表示指定Electron的版本号,`--overwrite`表示覆盖已存在的输出目录。 8. 打包完成后,在输出目录中将会生成安卓应用的文件。你可以使用Android Studio将其导,并进行进一步的构建、调试和签名。 需要注意的是,尽管使用Electron可以将Node.js程序封装为安卓应用,但这种方式可能会导致应用的体积较大,因为Electron本身包含了Chromium等组件。同时,Electron主要用于构建桌面应用,对于移动端应用可能会涉及到一些适配和性能方面的问题。因此,在封装Node.js程序为安卓应用时,需要综合考虑相关因素,并进行测试和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值