如何在 Electron windows 应用程序构建上设置 OverlayIcon 以便使用 Squirrel.Windows 发布
How to set OverlayIcon on Electron windows app build for release with Squirrel.Windows
我已将所有源代码打包到一个 .exe 文件夹中。该应用程序的图标已设置,但我的问题是它无法识别(在我的情况下是相同的图标)设置覆盖。
从 package.js 中提取的代码进行构建:
"pack": "build --dir",
"dist": "build --win --ia32"
"build": {
"icon": "icon.ico"
}
并且在 index.html 中,当我收到一个事件并需要覆盖图标时,它会退出并抛出错误。我为应用程序设置的图标相同。
mainWindow = new BrowserWindow({width: 1200, height: 800, icon: `icon.ico`, title: title})
我不明白那条路径是从哪里来的...我希望是来自应用程序资源的图标路径。用于设置应用程序图标的同一个。在这里失去了想法......请帮忙。
相关部分来自index.html
<script type="text/javascript">
const remoteElectron = require('electron').remote;
const BrowserWindow = remoteElectron.BrowserWindow;
const electron = require("electron");
var win = remoteElectron.getCurrentWindow();
var eventNewmsg = window.document.createEvent('Event');
eventNewmsg.initEvent('okmsg', false, false);
window.document.addEventListener("okmsg", function(){
win.setOverlayIcon(`icon.ico`, "");
}, false);
window.eventNewMsg = eventNewmsg;
var eventNomsg = window.document.createEvent('Event');
eventNomsg.initEvent('cancelmsg', false, false);
window.document.addEventListener("cancelmsg", function(){
win.setOverlayIcon(null, "")
}, false);
window.eventNoMsg = eventNomsg;
</script>
嗯,我用不同的方式设置了图标,对我来说效果很好。
我会告诉你我是如何设置的。适用于所有地方。
mainWindow = new BrowserWindow({
transparent: false,
frame: false,
fullscreen: false,
width: 800,
height: 400,
resizable: false,
movable: false,
show: false,
icon: __dirname + '/styles/images/app.png'
});
指定路径时最好明确,因此如果您的图标与 index.html
在同一目录中,您应该执行以下操作:
const path = require('path');
win.setOverlayIcon(path.join(__dirname, 'icon.ico', ''));
我已将所有源代码打包到一个 .exe 文件夹中。该应用程序的图标已设置,但我的问题是它无法识别(在我的情况下是相同的图标)设置覆盖。 从 package.js 中提取的代码进行构建:
"pack": "build --dir",
"dist": "build --win --ia32"
"build": {
"icon": "icon.ico"
}
并且在 index.html 中,当我收到一个事件并需要覆盖图标时,它会退出并抛出错误。我为应用程序设置的图标相同。
mainWindow = new BrowserWindow({width: 1200, height: 800, icon: `icon.ico`, title: title})
我不明白那条路径是从哪里来的...我希望是来自应用程序资源的图标路径。用于设置应用程序图标的同一个。在这里失去了想法......请帮忙。
相关部分来自index.html
<script type="text/javascript">
const remoteElectron = require('electron').remote;
const BrowserWindow = remoteElectron.BrowserWindow;
const electron = require("electron");
var win = remoteElectron.getCurrentWindow();
var eventNewmsg = window.document.createEvent('Event');
eventNewmsg.initEvent('okmsg', false, false);
window.document.addEventListener("okmsg", function(){
win.setOverlayIcon(`icon.ico`, "");
}, false);
window.eventNewMsg = eventNewmsg;
var eventNomsg = window.document.createEvent('Event');
eventNomsg.initEvent('cancelmsg', false, false);
window.document.addEventListener("cancelmsg", function(){
win.setOverlayIcon(null, "")
}, false);
window.eventNoMsg = eventNomsg;
</script>
嗯,我用不同的方式设置了图标,对我来说效果很好。
我会告诉你我是如何设置的。适用于所有地方。
mainWindow = new BrowserWindow({
transparent: false,
frame: false,
fullscreen: false,
width: 800,
height: 400,
resizable: false,
movable: false,
show: false,
icon: __dirname + '/styles/images/app.png'
});
指定路径时最好明确,因此如果您的图标与 index.html
在同一目录中,您应该执行以下操作:
const path = require('path');
win.setOverlayIcon(path.join(__dirname, 'icon.ico', ''));