showOpenDialog回调方法不走,windows系统
在VSCode里面,可以按住ctrl或者command点进showOpenDialog函数里面,看这个函数是Promise的还是回调的,然后用对应的方法就行了
这个问题的解决可以在这里找到:
原因是dialog api 随着electron版本6的发布而发生了变化,由原来的回调函数改为了promise。
关于promise更多用法可以查看这篇文章:
"electron": "^7.1.2"
亲测这样写可以
dialog.showOpenDialog(mainWindow, { properties: ['openFile', 'openDirectory'] }).then(result => { console.log(result.canceled) console.log(result.filePaths) }).catch(err => { console.log(err) })
catch 也带上试试
ipcMain.on('open-music-file', () => {
dialog.showOpenDialog({
properties: ['openFile', 'multiSelections'],
filters: [{ name: 'Music', extensions: ['mp3'] }]
}).then(result => {
console.log(result.filePaths)
})
})