electron实现拖拽应用内文件到桌面

2021-12-03阅读(4060)评论(0)牵着狗狗看MM

苏州实时公交查询

官网有个示例https://www.electronjs.org/docs/latest/tutorial/native-file-drag-drop#overview,如果完全按照这个去做,会发现并不能实现此功能。
我的应用场景是electron 整合了聊天,聊天内会有发送的文件、图片等,需要实现的功能是,可以拖拽这些文件到桌面,或电脑的其他文件夹。

1.在需要拖拽的文件上绑定拖拽事件

<img src="https://www.w3cways.com/wp-content/uploads/2015/07/logo.png" ondragstart={(e: Event) => this.ondragstart(e, this.item)} />

2.拖拽事件的处理

ondragstart(event: Event, item: any) {
       //这里省略一些处理步骤,如果文件的链接是远程链接,需要先保存到本地,拿到本地路径后再通过ipcRenderer发送给主进程
        this.$ipcRenderer.send('ondragstart', path)
    }

上面都是在渲染进程内

3.主进程内的处理

这里需要注意的是,上面的渲染进程是基于主进程创建的窗口:win

ipcMain.on('ondragstart', (event, filePath) => {
    win.webContents.startDrag({
        file: filePath, //文件路径
        icon: 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png',//=拖拽出应用时的ICON
    })
})

 

赞(1)
转载请注明来源:Web前端(W3Cways.com) - Web前端学习之路 » electron实现拖拽应用内文件到桌面
分享到: 更多 (0)