使用电子1.2.1和电子打包器7.0.3,在构建BrowserWindow的图标后没有显示为linux(Ubuntu 14.04 x64),它是什么?图片。如果我不创建asar文件,则会显示图标。如果我在启动应用程序时检查以确保该文件存在,则说它存在,我甚至可以使用fs模块将其复制到asar文件之外。所以图像在那里但是在asar文件中它没有被电子使用。
如果我将文件放在asar文件之外并将路径更改为BrowserWindow的图标配置以匹配该文件,它仍然不会拾取图标,因此不是文件是否在asar文件中,它是如果应用程序是从asar文件加载的。
我使用的是一个简单的例子:
var electron = require('electron'),
BrowserWindow = electron.BrowserWindow,
Path = require('path'),
fs = require('fs'),
icon = Path.resolve(__dirname, 'resources', 'foo.png');
electron.app.on('ready', function() {
var win = new BrowserWindow({
width : 400,
height : 400,
title : 'Test',
icon : icon
});
win.loadUrl('file://' + Path.resolve(__dirname, 'foo.html'));
win.openDevTools();
//for dev
console.log(fs.existsSync(icon)); //reports true
});
如果我通过以下方式检查控制台中的existsSync:
require('fs').existsSync(require('path).resolve(__dirname, 'resources', 'foo.png'));
它说该文件存在。 foo.png
是PNG 256x256文件。尝试使用32x32和64x64 PNG文件,但仍然没有运气。
关于出了什么问题的任何想法?
答案 0 :(得分:0)
这可能是一个错误。这是一个对我有帮助的解决方法;
setTimeout(() => bw.webContents.openDevTools(), 100)
答案 1 :(得分:-1)
您必须使用图像创建.icns文件。在这里,您有website将您的png转换为incs文件
之后,将文件保存在工作目录和include中。
使用电子打包器有一个图标选项,所以你可以在那里放置图标路径,例如:
electron-packager dashboard Netbeast --platform=linux --arch=all --version=0.37.2 --icon=dashboard/desktop_app/icon.icns