如何在Windows下参数化Electron autoUpdater通知,仅显示package.json的productName
在Windows系统中自定义Electron autoUpdater通知标题为package.json的productName
要让autoUpdater的通知只显示package.json中的productName而非electron.app.productName,你需要跳过autoUpdater的默认通知逻辑,手动监听更新事件并创建自定义通知,直接读取package.json的字段来设置通知标题。
实现步骤:
直接读取package.json中的productName
在主进程中导入package.json,获取你需要的产品名称:const { app, autoUpdater, Notification } = require('electron'); // 直接读取package.json的productName,避免使用app.productName const packageProductName = require('./package.json').productName;禁用默认通知,手动处理更新事件
监听autoUpdater的核心更新事件,在事件触发时创建自定义通知,完全控制通知内容:// 初始化autoUpdater(根据你的更新源调整,示例为GitHub) autoUpdater.setFeedURL({ provider: 'github', owner: '你的GitHub用户名', repo: '你的仓库名' }); // 监听"有更新可用"事件,弹出自定义通知 autoUpdater.on('update-available', () => { const updateNotify = new Notification({ title: packageProductName, body: '检测到新版本,正在后台下载更新...', icon: app.getAppPath() + '/resources/icon.ico' // 替换为你的应用图标路径 }); updateNotify.show(); }); // 监听"更新下载完成"事件,提示用户安装 autoUpdater.on('update-downloaded', (_, releaseNotes, releaseName) => { const installNotify = new Notification({ title: packageProductName, body: `更新已完成:${releaseName}\n点击通知安装并重启应用`, icon: app.getAppPath() + '/resources/icon.ico' }); // 点击通知触发安装重启 installNotify.on('click', () => { autoUpdater.quitAndInstall(); }); installNotify.show(); }); // 启动更新检查 autoUpdater.checkForUpdates();注意事项
- 确保在主进程中执行上述代码,Electron的
Notification在主进程中创建更稳定 - 如果使用electron-builder打包,需在
package.json中正确配置publish字段,保证autoUpdater能正常获取更新源 - 若你的应用图标路径不同,需调整
icon参数的路径,避免通知显示默认图标
- 确保在主进程中执行上述代码,Electron的
内容的提问来源于stack exchange,提问作者chipimix
相关产品推荐
相关产品推荐

