NativeImage在Electron中的setOverlayIcon()中不起作用

我试图为我的应用程序的任务栏图标(Windows 10)做一个数字徽章。 我已经使用这个代码作为起点,并修改了一下。 创build徽章之后,我使用以下内容在渲染器进程中进行设置:

var electron=require('electron'), remote=electron.remote, nativeImage=electron.nativeImage; ... var win=remote.getCurrentWindow(); ... var badgeDataURL=canvas.toDataURL(); var img=nativeImage.createFromDataURL(badgeDataURL); win.setOverlayIcon(img,''+n); 

运行这个给我以下错误:

 Uncaught Error: Could not call remote function 'setOverlayIcon'. Check that the function signature is correct. Underlying error: Error processing argument at index 0, conversion failure from #<Object> Error: Could not call remote function 'setOverlayIcon'. Check that the function signature is correct. Underlying error: Error processing argument at index 0, conversion failure from #<Object> at callFunction (A:\electron\resources\electron.asar\browser\rpc-server.js:235:11) at EventEmitter.<anonymous> (A:\electron\resources\electron.asar\browser\rpc-server.js:342:5) at emitMany (events.js:127:13) at EventEmitter.emit (events.js:201:7) at WebContents.<anonymous> (A:\electron\resources\electron.asar\browser\api\web-contents.js:231:13) at emitTwo (events.js:106:13) at WebContents.emit (events.js:191:7)metaToValue @ A:\electron\resources\electron.asar\renderer\api\remote.js:217remoteMemberFunction @ A:\electron\resources\electron.asar\renderer\api\remote.js:113electronSetBadge @ app.js:81updateBadge @ app.js:156initClick @ app.js:183(anonymous function) @ app.js:203dispatch @ jquery-1.12.4.min.js:3r.handle @ jquery-1.12.4.min.js:3 

我已经尝试了以下内容:

  • 不同版本的Electron(1.4.13和1.2.8)
  • testingbadgeDataURLimg的内容,这是一个有效的图像
  • testingsetOverlayIcon与一个静态图像: win.setOverlayIcon(__dirname+'/pics/badge.png',''+n) (它的工作原理)
  • win.setOverlayIcon(null,'')也可以

虽然文档说setOverlayIcon期望第一个参数是NativeImagetypes,但我还是无法在任何地方find工作示例。 有任何想法吗?

对我来说, setOverlayIcon需要从主进程运行。 这是固定在我身边的东西:

在我的渲染过程中:

 ipcRenderer.send('update-badge', canvas.toDataURL()) 

而在我的主要过程中:

 ipcMain.on('update-badge', (event, data) => { let img = nativeImage.createFromDataURL(data) win.setOverlayIcon(img, 'description') }