问题
I am new to electronjs. I want to convert an angular app to desktop. I could achieve it successfully but the problem is that the app icon is set to default electron and not the icon I provided as follows:
win = new BrowserWindow({
width: 600,
height: 670,
icon: `${__dirname}/dist/assets/imgs/logo.png`
})
I changed the icon after building the app using resource hacker but what I need is to change it at build time in the correct way. what am I missing>
回答1:
In main.js, specify icon
win = new BrowserWindow({
width: 800,
height: 600,
icon: __dirname + '/Icon/Icon.icns'
})
You can also use helper url methods
const path = require('path')
const url = require('url')
const iconUrl = url.format({
pathname: path.join(__dirname, 'Icon/Icon.icns'),
protocol: 'file:',
slashes: true
})
Check this for reference: https://medium.com/fantageek/changing-electron-app-icon-acf26906c5ad
回答2:
In the main process, you have to specify the icon path. In windows the icon has to be .ico or in mac .icns
const path = require('path')
mainWindow = new BrowserWindow({
width: 900,
height: 700,
icon: path.join(__dirname, './img/icon.ico');
}
})
回答3:
You could change the icon depending on the platform your launching.
const iconPath = process.platform !== 'darwin'
? 'src/assets/icons/favicon.ico'
: 'src/assets/icons/favicon.icns';
// Create the browser window.
win = new BrowserWindow({
icon: path.join(__dirname, iconPath),
x: 0,
y: 0,
width: size.width,
height: size.height,
webPreferences: {
nodeIntegration: true,
allowRunningInsecureContent: (serve) ? true : false,
contextIsolation: false, // false if you want to run e2e test with Spectron
enableRemoteModule: true // true if you want to run e2e test with Spectron or use remote module in renderer context (ie. Angular)
},
});
回答4:
What you ccan do is insert a line of code in here:
WIN = new BrowserWindow = ({
// ...
icon: __dirname + '/relative/path/to/your/icon/file'
// ...
});
来源:https://stackoverflow.com/questions/58351575/how-to-change-electronjs-app-default-icon