Cómo configurar el ícono de la aplicación Electron / Atom Shell


147

¿Cómo configura el icono de la aplicación para su aplicación Electron?

Estoy intentando BrowserWindow({icon:'path/to/image.png'});pero no funciona.

¿Necesito empacar la aplicación para ver el efecto?



Una cosa que puede hacer para Mac es colocar un postinstallscript en su proyecto que copiará el archivo .icns en su lugar en node_modules / automáticamente.
theram

Respuestas:


164

Establecer la iconpropiedad al crear el BrowserWindowúnico tiene un efecto en Windows y Linux.

Para configurar el icono en OS X, puede usar el paquete electrónico y configurar el icono con el --iconinterruptor.

Deberá estar en formato .icns para OS X. Hay un convertidor de iconos en línea que puede crear este archivo desde su .png.


55
Establecer el ícono en BrowserWindow en un archivo .PNG se mostrará en la barra de tareas en Windows. Puede encontrar un ejemplo de cómo funciona en mi blog aquí: mylifeforthecode.com/… Puede ser que la ruta deba ser absoluta para que funcione, ya que la configuré en __dirname + 'ruta / a / icon.png'. Sin embargo, para configurar el ícono para el .exe necesitará usar un paquete electrónico o un hacker de recursos.
Shawn Rakowski

¿Puedes arreglar esta respuesta para que sea precisa?
Ana Betts

Gracias @ShawnRakowski, tienes razón: acabo de probar esto y la propiedad del icono también funciona en Windows. He actualizado mi respuesta para reflejar esto.
Alex Warren

1
Esto funcionó al principio, pero luego envié la aplicación distribuible a mi amigo y no funcionó. ¿Algunas ideas?
Chet

10
@Nick, tendrás que hacer algo como lo siguienteelectron-packager . YourApplicationName --all --icon "path/to/my/icon.ico"
Mateo

47

A continuación se muestra la solución que tengo:

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

18
Vale la pena mencionar que __dirname es la ruta de su carpeta / src / (es decir, la carpeta de su archivo app.js / main.js).
Konstantin

.icnsinnecesario ?
ishandutta2007

20

También puedes hacerlo para macOS. Ok, no a través del código, sino con algunos pasos simples:

  1. Encuentre el archivo .icns que desea usar, ábralo y cópielo a través del menú Editar
  2. Encuentre el electron.app, generalmente en node_modules / electron / dist
  3. Abre la ventana de información.
  4. Seleccione el icono en la esquina superior izquierda (borde gris a su alrededor)
  5. Pegue el icono a través de cmd + v
  6. Disfruta tu ícono durante el desarrollo :-)

ingrese la descripción de la imagen aquí

En realidad es algo general no específico del electrón. Puede cambiar el ícono de muchas aplicaciones macOS como esta.


66
Esto es asombroso, gracias por esto. Necesitaba arrastrar y soltar para que funcionara, pero no obstante era increíble.
Robert Masen


Esto parece funcionar solo para el desarrollo. Cuando ejecuto 'yarn dist', el archivo icns se reemplaza con el electrón predeterminado.
Dave

2
@Dave En realidad, dijo6. Enjoy your icon during *development* :-)
Mia

Bueno chicos ... Lo sé ... Pero esta solución tiene más de 2 años ... ;-) Y por cierto. deberías poder usar este "hack" también en una versión final, ya que simplemente lo cambias en la aplicación dist ... No lo he intentado por un tiempo ... Y quién sabe, tal vez hay una forma oficial, ahora ... ;-)
alexrjs

12

Package.json actualizado :

"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
  }
},

Después de compilar la aplicación, puede ver iconos. Esta solución no muestra iconos en modo desarrollador. No configuro iconos en new BrowserWindow().



1

Si desea actualizar el ícono de la aplicación en la barra de tareas, luego Actualice lo siguiente en main.js (si usa typecript, entonces main.ts)

win.setIcon(path.join(__dirname, '/src/assets/logo-small.png'));

__dirnameapunta al directorio raíz (el mismo directorio que package.json) de su aplicación.


seguro de mac?
Anil8753

0

Tenga en cuenta que los ejemplos de la ruta del archivo de icono tienden a suponer que main.js está bajo el directorio base. Si el archivo no está en el directorio base de la aplicación, la especificación de ruta debe tener en cuenta ese hecho.

Por ejemplo, si main.js está bajo el subdirectorio src /, y el ícono está bajo assets / icons /, esta especificación de ruta de ícono funcionará:

icon: __dirname + "../assets/icons/icon.png"

0

empaquetador de electrones


Establecer la propiedad del icono al crear el BrowserWindowúnico tiene un efecto en las plataformas Windows y Linux. tienes que empacar los .icns para max

Para configurar el icono en OS X usando electron-packager, configure el icono usando el interruptor --icon.

Deberá estar en formato .icns para OS X. Hay un convertidor de iconos en línea que puede crear este archivo desde su .png.

constructor de electrones


Como solución más reciente, encontré una alternativa para usar el --iconinterruptor. Esto es lo que puedes hacer.

  1. Cree un directorio con nombre builden el directorio de su proyecto y coloque .icnsel icono en el directorio con el nombre icon.icns.
  2. Ejecute el generador ejecutando el comando electron-builder --dir.

Encontrará que el ícono de su aplicación se recogerá automáticamente de esa ubicación de directorio y se usará para una aplicación mientras se empaqueta.

Nota : La respuesta dada es para la versión reciente electron-buildery probada con electron-builder v21.2.0

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.