【问题标题】:Electron browser icon not showing in Linux电子浏览器图标未在 Linux 中显示
【发布时间】:2016-10-03 16:07:43
【问题描述】:

使用 electron 1.2.1 和 electron-packager 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 文件,但仍然没有成功。

对出了什么问题有任何想法吗?

【问题讨论】:

  • 你是如何使用电子打包机的?
  • 发现问题是我需要提供一个.desktop 文件,但不知道它需要去哪里以及它是否应该在 asar 文件中(我认为不是)。我使用grunt-electron 所以electron 配置来描述每个平台的配置。它所做的只是将对象提供给electron-packager

标签: window icons electron


【解决方案1】:

这可能是一个错误。这是一个对我有帮助的解决方法;

setTimeout(() => bw.webContents.openDevTools(), 100)

【讨论】:

    【解决方案2】:

    您必须使用您的图像创建一个 .icns 文件。在这里,您有一个 website 可以将您的 png 转换为 incs 文件

    之后,将您的文件保存在您的工作目录中,并按照您的操作进行包含。

    使用 electron-packager 有一个图标选项,因此您可以将图标路径放在那里,例如:

    electron-packager dashboard Netbeast --platform=linux --arch=all --version=0.37.2 --icon=dashboard/desktop_app/icon.icns 
    

    【讨论】:

    • 真的吗?我还没有看到任何说 icns 会起作用的东西,事实上我看到有人说 png 会起作用。不过,我会试一试,谢谢您的指导!
    • 不幸的是,这对我不起作用。甚至将路径更改为不在资源范围内。甚至将它复制到 asar 文件之外,移动它以尝试所有可能的组合,但仍然不行。我被告知要创建一个.desktop 文件,但不知道该放在哪里,如何将其合并到构建中。根本没有这方面的指导。
    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多