如何为您的Electron应用设置应用图标?
我正在尝试BrowserWindow({icon:'path/to/image.png'});
,但它不起作用。
我是否需要打包应用才能看到效果?
答案 0 :(得分:141)
创建icon
时设置BrowserWindow
属性仅对Windows和Linux有影响。
要在OS X上设置图标,您可以使用electron-packager并使用--icon
开关设置图标。
OS X需要采用.icns格式。有online icon converter可以从.png创建此文件。
答案 1 :(得分:33)
以下是我的解决方案:
mainWindow = new BrowserWindow({width: 800, height: 600,icon: __dirname + '/Bluetooth.ico'});
答案 2 :(得分:17)
您也可以为macOS执行此操作。好吧,不是通过代码,而是通过一些简单的步骤:
答案 3 :(得分:8)
更新了 package.json:
"build": {
"appId": "com.my-website.my-app",
"productName": "MyApp",
"copyright": "Copyright © 2019 ${author}",
"mac": {
"icon": "./public/icons/mac/icon.icns", <---------- set Mac Icons
"category": "public.app-category.utilities"
},
"win": {
"icon": "./public/icons/png/256x256.png" <---------- set Win Icon
},
"files": [
"./build/**/*",
"./dist/**/*",
"./node_modules/**/*",
"./public/**/*", <---------- need for get access to icons
"*.js"
],
"directories": {
"buildResources": "public" <---------- folder where placed icons
}
},
构建应用程序后,您可以看到图标。此解决方案不在开发人员模式下显示图标。
我没有在new BrowserWindow()
中设置图标。
答案 4 :(得分:0)
电子生成器supports icons
答案 5 :(得分:0)
如果要更新任务栏中的应用程序图标,请在main.js中更新以下内容(如果使用打字稿,请先更新main.ts)
win.setIcon(path.join(__dirname, '/src/assets/logo-small.png'));
__dirname
指向应用程序的根目录(与package.json
相同的目录)。
答案 6 :(得分:0)
请注意,图标文件路径的示例倾向于假定main.js位于基本目录下。如果该文件不在应用程序的基本目录中,则路径说明必须说明该事实。
例如,如果main.js位于src /子目录下,并且图标位于asset / icons /下,则此图标路径说明将起作用:
icon: __dirname + "../assets/icons/icon.png"
答案 7 :(得分:0)
<ng-container formArrayName="groundUses"
*ngFor="let data of formGroundUse.controls['groundUses']?.controls; let i = index">
<tr [formGroup]="groundUses.controls[i]">
<!-- *ngFor="let data of tableData"> -->
<td class="table-subtitle">{{data.title}} {{i}}</td>
<td class="input-container">
<label for="">Área (Ha)</label>
<!-- formControlName="{{data.title}}" -->
<input type="text" [disabled]="!technicalData.edit" class="form-input" [value]="data.value"
(change)="updateItem($event)" formControlName="value">
</td>
<td>{{data.percentage}}</td>
</tr>
</ng-container>
时设置图标属性仅对Windows和Linux平台有效。您必须将.icns打包为最大
要使用BrowserWindow
在OS X上设置图标,请使用--icon开关设置图标。
对于OS X,它必须为.icns格式。有一个在线图标转换器,可以从您的.png创建此文件。
electron-packager
开关的替代方法。这是您可以做的。
--icon
的目录,并将build
图标放在名为.icns
的目录中。icon.icns
运行构建器。您会发现您的应用程序图标将从该目录位置自动拾取,并在打包时用于应用程序。
注意:给出的答案适用于
electron-builder --dir
的最新版本,并已通过电子生成器v21.2.0进行了测试
答案 8 :(得分:0)
对于Windows,请使用Resource Hacker
下载并安装::D
http://www.angusj.com/resourcehacker/
您应该已经构建了应用程序
答案 9 :(得分:0)
win = new BrowserWindow({width: 1000, height: 1000,icon: __dirname + '/logo.png'}); //*.png or *.ico will also work
在我看来,它奏效了!
答案 10 :(得分:0)
如果您要将现有的网络应用程序转换为 Electron 应用程序,您可以使用以下代码:
const path = require('path')
const mainWindow = new BrowserWindow({
icon: path.join(__dirname, 'favicon.ico'),
})