The*_*rIV 7 electron electron-builder electron-packager angular
我是electronjs的新手。我想将 angular 应用程序转换为桌面。我可以成功实现它,但问题是应用程序图标设置为默认电子而不是我提供的图标,如下所示:
win = new BrowserWindow({
width: 600,
height: 670,
icon: `${__dirname}/dist/assets/imgs/logo.png`
})
Run Code Online (Sandbox Code Playgroud)
我在使用资源黑客构建应用程序后更改了图标,但我需要的是在构建时以正确的方式更改它。我错过了什么>
小智 7
在 main.js 中,指定图标
win = new BrowserWindow({
width: 800,
height: 600,
icon: __dirname + '/Icon/Icon.icns'
})
Run Code Online (Sandbox Code Playgroud)
您还可以使用辅助 url 方法
const path = require('path')
const url = require('url')
const iconUrl = url.format({
pathname: path.join(__dirname, 'Icon/Icon.icns'),
protocol: 'file:',
slashes: true
})
Run Code Online (Sandbox Code Playgroud)
检查此以供参考:https : //medium.com/fantageek/changed-electron-app-icon-acf26906c5ad
我知道我回答这个问题已经迟到了,但我还是会继续。我通过艰难的方式了解到了有关应用程序图标的这些事情。我认为通过比较开发和分发阶段可以更好地理解这个主题。
这与通过 运行应用程序是同义的npm start。在此阶段,无论您添加什么代码,您都无法替换Electron 的默认图标。
唯一可能的是将重叠图标放在默认图标之上。但是,它可能不是您正在寻找的解决方案,因为它不是图标替换而只是覆盖。这是关于图标叠加的记录。
OP的上面的代码实际上是所谓的图标覆盖的一个例子。
win = new BrowserWindow({
width: 600,
height: 670,
icon: `${__dirname}/dist/assets/imgs/logo.png`
})
Run Code Online (Sandbox Code Playgroud)
此外,还可以使用图标覆盖来替换通知图标。
这与使用以下任一分发框架同义:
为您的应用程序创建可执行文件 ( .app/ .exe)。正是在这个阶段,您可以实际替换Electron 的默认图标。
例如,在 electro-packager 中,您可以指定在打包过程中要使用的图标,如下所示:
cd /path/to/app
# Mac (.icns)
npx electron-packager ./ --platform=darwin --icon=/path/to/your-custom-icon.icns
# Windows (.ico)
npx electron-packager ./ --platform=win32 --arch=x64 --icon=/path/to/your-custom-icon.ico
Run Code Online (Sandbox Code Playgroud)
使用电子锻造器或电子构建器进行此操作将采用不同的方法。我还没试过。
重点是......只有当你的应用程序已经打包时,你才能真正替换 Electron 的默认图标。
在主进程中,您必须指定图标路径。在 Windows 中图标必须是 .ico 或在 mac 中是 .icns
const path = require('path')
mainWindow = new BrowserWindow({
width: 900,
height: 700,
icon: path.join(__dirname, './img/icon.ico');
}
})
Run Code Online (Sandbox Code Playgroud)