_Jack_Han_
2020-02-17 00:10
在main.js中使用ipcMain监听事件,为什么在有的地方可以用event.sender去发送信息,有的地方却只能用mainWindow来发送呢?
ipcMain.on("select-music-files", (event, params) => { dialog.showOpenDialog({ "properties": ["openFile", "multiSelections"], "filters": [{ "name": "Music", "extensions": ["mp3"] }] }) .then(res => { if (!res.canceled && res.filePaths.length > 0) { // 这里却可以用event.sender event.sender.send("selected-music-files", { "musicFiles": res.filePaths }); } }) .catch(err => { console.log(err); }); }); ipcMain.on("import-music-files", (event, params) => { if (Array.isArray(params.musicFiles) && params.musicFiles.length > 0) { const musicFiles = musicDataStore.addTracks(params.musicFiles); // 这里尝试过,event.sender无法发送 mainWindow.send("render-music-files", { musicFiles }); } }); ipcMain.on("delete-music-file", (event, params) => { const musicFiles = musicDataStore.deleteTrack(params.id); // 这里尝试过,event.sender无法发送 mainWindow.send("render-music-files", { musicFiles }); });
mainWindow指定发送,而event.sender进程内回调发送。
就是一个页面内发信息发送到main.js,然后用event.sender进行进程内在发送回去。
而mainwindow实际上是新建的一个进程窗口,我们就指定给他发送了。
望采纳,我也是刚学习。
Electron开发本地音乐播放器
4411 学习 · 53 问题
相似问题