Une chose que vous pouvez faire pour Mac est de mettre un postinstallscript dans votre projet qui copiera automatiquement le fichier .icns sous node_modules /.
theram
Réponses:
164
La définition de la iconpropriété lors de la création de la propriété BrowserWindown'a d'effet que sur Windows et Linux.
Pour définir l'icône sur OS X, vous pouvez utiliser électron-packager et définir l'icône à l'aide du --iconcommutateur.
Il devra être au format .icns pour OS X. Il existe un convertisseur d'icônes en ligne qui peut créer ce fichier à partir de votre .png.
La définition de l'icône de BrowserWindow sur un fichier .PNG s'affichera dans la barre des tâches de Windows. Un exemple de son fonctionnement peut être trouvé sur mon blog ici: mylifeforthecode.com/ ... Il se peut que le chemin doive être absolu pour fonctionner, car je l'ai défini sur __dirname + 'path / to / icon.png'. Cependant, pour définir l'icône pour le .exe, vous devrez utiliser électron-packager OU un hacker de ressources.
Shawn Rakowski
Pouvez-vous corriger cette réponse pour qu'elle soit précise avec Windows s'il vous plaît?
Ana Betts
Merci @ShawnRakowski, vous avez raison - je viens de tester cela et la propriété icon fonctionne également sous Windows. J'ai mis à jour ma réponse pour refléter cela.
Alex Warren
1
Cela a fonctionné au début, mais j'ai ensuite envoyé l'application distribuable à mon ami et cela n'a pas fonctionné! Des idées?
Chet
10
@Nick, vous devrez faire quelque chose comme ce qui suitelectron-packager . YourApplicationName --all --icon "path/to/my/icon.ico"
Mateo
47
Voici la solution que j'ai:
mainWindow = new BrowserWindow({width: 800, height: 600,icon: __dirname + '/Bluetooth.ico'});
Cela semble ne fonctionner que pour le développement. Lorsque j'exécute 'yarn dist', le fichier icns est remplacé par le fichier électronique par défaut.
Dave le
2
@Dave Actually he said6. Enjoy your icon during *development* :-)
Mia
Eh bien les gars ... Je sais ... Mais ce correctif a plus de 2 ans ... ;-) Et btw. vous devriez pouvoir utiliser ce "hack" également sur une version finale, puisque vous le changez simplement sur l'application dist ... Je n'ai pas essayé depuis un moment .. Et qui sait peut-être qu'il existe un moyen officiel, maintenant ... ;-)
Après la construction de l'application, vous pouvez voir les icônes. Cette solution n'affiche pas les icônes en mode développeur. Je ne configure pas d'icônes dans new BrowserWindow().
Si vous souhaitez mettre à jour l'icône de l'application dans la barre des tâches, effectuez la mise à jour suivante dans main.js (si vous utilisez typescript, alors main.ts)
Veuillez noter que les exemples de chemin de fichier d'icône ont tendance à supposer que main.js se trouve sous le répertoire de base. Si le fichier ne se trouve pas dans le répertoire de base de l'application, la spécification du chemin doit tenir compte de ce fait.
Par exemple, si le fichier main.js se trouve dans le sous-répertoire src / et que l'icône est sous assets / icons /, cette spécification de chemin d'icône fonctionnera:
La définition de la propriété icon lors de la création BrowserWindown'a d'effet que sur les plates-formes Windows et Linux. vous devez empaqueter les .icns pour max
Pour définir l'icône sous OS X à l'aide de electron-packager, définissez l'icône à l'aide du commutateur --icon.
Il devra être au format .icns pour OS X. Il existe un convertisseur d'icônes en ligne qui peut créer ce fichier à partir de votre .png.
constructeur d'électrons
En tant que solution la plus récente, j'ai trouvé une alternative à l'utilisation de --iconswitch. Voici ce que vous pouvez faire.
Créez un répertoire nommé builddans le répertoire de votre projet et placez .icnsl'icône l'icône dans le répertoire comme nommé icon.icns.
exécutez le générateur en exécutant la commande electron-builder --dir.
Vous constaterez que l'icône de votre application sera automatiquement récupérée à partir de cet emplacement de répertoire et utilisée pour une application lors de l'empaquetage.
Remarque : La réponse donnée concerne la version récente electron-builderet testée avec electron-builder v21.2.0
postinstall
script dans votre projet qui copiera automatiquement le fichier .icns sous node_modules /.Réponses:
La définition de la
icon
propriété lors de la création de la propriétéBrowserWindow
n'a d'effet que sur Windows et Linux.Pour définir l'icône sur OS X, vous pouvez utiliser électron-packager et définir l'icône à l'aide du
--icon
commutateur.Il devra être au format .icns pour OS X. Il existe un convertisseur d'icônes en ligne qui peut créer ce fichier à partir de votre .png.
la source
electron-packager . YourApplicationName --all --icon "path/to/my/icon.ico"
Voici la solution que j'ai:
la source
.icns
pas besoin ?Vous pouvez également le faire pour macOS. Ok, pas par code, mais avec quelques étapes simples:
En fait, c'est une chose générale non spécifique à l'électron. Vous pouvez modifier l'icône de nombreuses applications macOS comme celle-ci.
la source
6. Enjoy your icon during *development* :-)
Package.json mis à jour :
Après la construction de l'application, vous pouvez voir les icônes. Cette solution n'affiche pas les icônes en mode développeur. Je ne configure pas d'icônes dans
new BrowserWindow()
.la source
Electron Builder prend en charge les icônes
la source
Si vous souhaitez mettre à jour l'icône de l'application dans la barre des tâches, effectuez la mise à jour suivante dans main.js (si vous utilisez typescript, alors main.ts)
__dirname
pointe vers le répertoire racine (même répertoire quepackage.json
) de votre application.la source
Veuillez noter que les exemples de chemin de fichier d'icône ont tendance à supposer que main.js se trouve sous le répertoire de base. Si le fichier ne se trouve pas dans le répertoire de base de l'application, la spécification du chemin doit tenir compte de ce fait.
Par exemple, si le fichier main.js se trouve dans le sous-répertoire src / et que l'icône est sous assets / icons /, cette spécification de chemin d'icône fonctionnera:
la source
emballeur d'électrons
La définition de la propriété icon lors de la création
BrowserWindow
n'a d'effet que sur les plates-formes Windows et Linux. vous devez empaqueter les .icns pour maxPour définir l'icône sous OS X à l'aide de
electron-packager
, définissez l'icône à l'aide du commutateur --icon.Il devra être au format .icns pour OS X. Il existe un convertisseur d'icônes en ligne qui peut créer ce fichier à partir de votre .png.
constructeur d'électrons
En tant que solution la plus récente, j'ai trouvé une alternative à l'utilisation de
--icon
switch. Voici ce que vous pouvez faire.build
dans le répertoire de votre projet et placez.icns
l'icône l'icône dans le répertoire comme nomméicon.icns
.electron-builder --dir
.Vous constaterez que l'icône de votre application sera automatiquement récupérée à partir de cet emplacement de répertoire et utilisée pour une application lors de l'empaquetage.
la source