7

我有一个 win .exe 和安装程序的电子构建文件,但图标不是我的。在我的 main.js 文件中,我有附加图标的代码,但我只能让它在 createWindow 函数内工作。在函数之外,我收到一条错误消息。.exe 将运行,我得到我的图标,但这样做会出错;安装程序根本不起作用。我已经尝试过几个教程,但没有一个能解决这个问题。

main.js

const {app, BrowserWindow, Tray} = require('electron')
const path = require('path')
const url = require('url')

let win

function createWindow () {
  const appIcon = new Tray('icon/app.png')
  win = new BrowserWindow({ width: 1920, height: 1080, icon: 'icon/app.ico' })
  console.log(appIcon, win)
  win.loadURL(url.format({
    pathname: path.join(__dirname, 'app/app.html'),
    protocol: 'file:',
    slashes: true
  }))
  win.on('closed', () => {
    win = null
  })
}

app.on('ready', createWindow)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
app.on('activate', () => {
  if (win === null) {
    createWindow()
  }
})

包.json

{
  "name": "myapp",
  "version": "1.0.0",
  "description": "MyApp",
  "private": true,
  "main": "main.js",
  "build": {
    "appID": "myapp",
    "productName": "MyApp",
    "icon": "icon/app.ico"
  },
  "scripts": {
    "start": "electron ." ,
    "package": "",
  },
  "author": "Me",
  "license": "ISC",
  "devDependencies": {
    "electron": "^1.6.1"
  }
}

我不知道从这里做什么。

4

3 回答 3

7

简单的解决方案

const nativeImage = require('electron').nativeImage;
    var image = nativeImage.createFromPath(__dirname + '/public/img/logo.png'); 
 // where public folder on the root dir

    image.setTemplateImage(true);


 // Create the browser window.
    win = new BrowserWindow({
        width: 1179,
        height: 754,
        backgroundColor: '#ffffff',
        transparent: false,
        icon: image
    })
于 2018-09-26T12:25:27.963 回答
2

以下为我工作。要在任务栏中显示应用程序图标,您可以在 main.js 中即时更新图标(如果使用 typescript,则为 main.ts)

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

值得一提__dirname的是指向与 package.json 相同的目录

于 2019-04-14T13:33:29.503 回答
2

在 main.js 里面

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

在安装程序上,如果您使用的是 electron-builder

  "devDependencies": {
    "electron": "^1.4.15",
    "electron-builder": "^12.3.1"
  },

在根目录上创建一个文件夹并在该文件夹内命名为build添加您的 icon.ico

有时您需要重新启动电子或构建应用程序 2 次

于 2017-03-13T03:30:38.587 回答