我正在尝试使用 Electron 创建一个文件 拖放应用程序,我需要知道正在拖动的文件是否已成功拖到用户桌面上,或者拖放是否已被取消。
我尝试使用
GlobalEventHandlers.ondragend
事件监听器,但它似乎被 e.preventDefault()
函数所需的 startDrag
取消了:
const dropAreaRef = document.body;
dropAreaRef.addEventListener("dragstart", handleExport, false);
dropAreaRef.addEventListener("dragend", handleExportEnd, false);
function handleExport(e) {
e.preventDefault();
window.electron.startDrag(files);
}
function handleExportEnd(e) {
console.log("export ended")
}
我查看了
Electron.WebContents
文档,但找不到任何提及 startDrag
回调函数或任何电子 Instance Events
。
在 Windows 上,您可以调用
browserWindow.hookWindowMessage(message, callback)
来监听事件,例如:
WM_MOUSEMOVE 0x0200
,
WM_LBUTTONUP 0x0201
,
WM_LBUTTONDOWN 0x0201
但是这在macOS上不起作用,我还没有找到解决方案