电子浏览器图标未显示在Linux

时间:2016-06-03 14:25:47

标签: window icons electron

使用电子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文件,但仍然没有运气。

关于出了什么问题的任何想法?

2 个答案:

答案 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