如何为Electron/Atom Shell App设置应用程序图标

Jo *_* E. 134 icons electron

如何为Electron应用程序设置应用程序图标?

我正在尝试,BrowserWindow({icon:'path/to/image.png'});但它不起作用.

我是否需要打包应用才能看到效果?

Ale*_*ren 152

icon在创建属性时设置属性BrowserWindow会对Windows和Linux产生影响.

要在OS X上设置图标,您可以使用electron-packager并使用--icon开关设置图标.

对于OS X,它需要采用.icns格式.有一个在线图标转换器,可以从你的.png创建这个文件.

  • @Nick你需要做类似下面的`电子包装器.YourApplicationName --all --icon"path/to/my/icon.ico"` (8认同)
  • 将BrowserWindow上的图标设置为.PNG文件将显示在Windows的任务栏中.它的工作示例可以在我的博客上找到:http://www.mylifeforthecode.com/setting-a-custom-taskbar-icon-for-an-electron-window/可能需要路径绝对是为了工作,因为我将其设置为__dirname +'path/to/icon.png'.但是,要设置.exe的图标,您需要使用electron-packager或资源黑客. (4认同)

小智 37

以下是我的解决方案:

mainWindow = new BrowserWindow({width: 800, height: 600,icon: __dirname + '/Bluetooth.ico'});
Run Code Online (Sandbox Code Playgroud)

  • 值得一提的是__dirname是/ src /文件夹的路径(即app.js/main.js文件的文件夹). (12认同)
  • IntelliJ 建议最好这样写:`icon: path.join(__dirname, 'icons/png/256x256.png')` (3认同)
  • 不需要`.icns`? (2认同)

ale*_*rjs 18

你也可以为macOS做这件事.好的,不是通过代码,而是通过一些简单的步骤:

  1. 找到要使用的.icns文件,将其打开并通过"编辑"菜单进行复制
  2. 找到electron.app,通常在node_modules/electron/dist中
  3. 打开信息窗口
  4. 选择左上角的图标(周围的灰色边框)
  5. 通过cmd + v粘贴图标
  6. 在开发过程中享受您的图标:-)

在此输入图像描述

实际上这是一个不特定于电子的一般事物.您可以更改这样的许多macOS应用程序的图标.

  • 这太棒了,谢谢你.我确实需要拖放才能让它工作但仍然令人惊叹. (6认同)
  • @Dave 实际上他说的是'6。在*开发*期间享受您的图标:-)` (3认同)

And*_*iko 6

更新了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
  }
},
Run Code Online (Sandbox Code Playgroud)

构建应用程序后,您可以看到图标。此解决方案不在开发人员模式下显示图标。我没有在中设置图标new BrowserWindow()

  • 自 3.0 起不再支持应用程序 package.json 中的“build” (2认同)

Har*_*Das 5

如果您想更新任务栏中的应用程序图标,请更新 main.js 中的以下内容(如果使用 typescript,则更新 main.ts)

win.setIcon(path.join(__dirname, '/src/assets/logo-small.png'));
Run Code Online (Sandbox Code Playgroud)

__dirname指向package.json应用程序的根目录(与 相同的目录)。