如何在窗口打开后更新电子BrowserWindow图标?

时间:2016-03-12 05:20:44

标签: electron

使用电子api,我可以在调用BrowserWindow构造函数时设置窗口的图标,如下所示:

  mainWindow = new BrowserWindow({
    icon: __dirname + '/electric-glowing-bear.png');

不幸的是,我事后并没有弄清楚如何更新图标。似乎有一种方法可以在Mac OS X上更新停靠栏图标,但是,我正在运行Linux。

这样做的目的是让我可以用一个数字“标记”图标,表示未读消息正在等待。

到目前为止,我发现的唯一解决方法是使用托盘图标,但是,我更希望在停靠栏/任务栏中显示未读计数。

3 个答案:

答案 0 :(得分:1)

您可以在创建窗口时设置BrowserWindow图标。

import org.scalatest.prop.TableDrivenPropertyChecks._
import org.scalatest.prop.Tables.Table
import org.scalatest.{FeatureSpec, GivenWhenThen}

class PaulWritesSpecs extends FeatureSpec with GivenWhenThen {

  val requestResponse =
    Table(
      ("httpMethod", "requestType"),
      ("GET", READ),
      ("POST", CREATE))

  feature("Features of mus client") {

    forAll(requestResponse) { (httpMethod: String, requestType: String) => {

        scenario(s"$httpMethod message with mus client") {

          Given("http config")
          val config: Properties = new Properties() {{
            put("method", httpMethod)
            put("encoding", "UTF-8")
            put("uri", "http://localhost:9083/musClient")
          }}

          When("I make a request to f2e")
          val response = HttpClientTest.request(config, createJSON(requestType))

          Then("The message it´s returned successfully")
          assert(response != null)
        }
      }
    }
  }
}

您可以随时更改BrowserWindow图标。

const {BrowserWindow} = require('electron')
let mainWindow = new BrowserWindow({icon: icon})

您可以随时随地使用任务栏图标叠加编号。

mainWindow.setIcon(changeicon);

Windows overlay NativeImage - 显示在任务栏图标右下角的图标。如果此参数为null,则清除叠加层 description String - 将提供给Accessibility屏幕阅读器的描述 将16 x 16像素覆盖设置到当前任务栏图标上,通常用于传达某种应用程序状态或被动地通知用户。

答案 1 :(得分:0)

不幸的是,目前这似乎不可能,至少在Linux上不行。

答案 2 :(得分:0)

只要您有适当的文件,这应该就可以工作

const os = require('os'); // top of file
switch (os.platform()) {
    case 'darwin':
        mainWindow.setIcon('src/app/assets/icons/icon.icns');
        break;
    case 'win32':
        mainWindow.setIcon('src/app/assets/icons/icon.ico');
        break;
    default:
        mainWindow.setIcon('src/app/assets/icons/icon.png');
        break;
}