我已将整个源代码打包到一个.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>
答案 0 :(得分:1)
最好在指定路径时明确,因此如果您的图标与index.html
位于同一目录中,则应执行以下操作:
const path = require('path');
win.setOverlayIcon(path.join(__dirname, 'icon.ico', ''));
答案 1 :(得分:0)
嗯,我以不同的方式设置了图标,对我来说效果很好。
我会告诉你我是如何设置它的。适用于所有地方。
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'
});