将 html 元素拖到 electron window 之外以复制本地文件?
Drag html element outside electron window to copy local file?
我打算用electron实现一个音乐播放器。它将列出用户硬盘中的音乐。
是否可以定义拖放行为以便我可以拖动 html 元素,例如<span>Artist – Title</span>
外electronwindow到用户桌面复制实际文件?
文件存储在这里:~/music/Artist-Title.mp3
.
当将 span
从我的电子 window 拖放到桌面上时,应该制作一个副本:~/Desktop/Artist-Title.mp3
.
我相信这就是您正在寻找的API。
http://electron.atom.io/docs/api/web-contents/#contentsstartdragitem
remote.getCurrentWebContents().startDrag({
file: 'path/to/file',
icon: 'path/to/file/icon',
});
工作示例:
放入main.js
复制一个拖拽显示的图标(yourAppDir/img/icon/folder.png)
:
const {ipcMain} = require('electron')
ipcMain.on('ondragstart', (event, filePath) => {
event.sender.startDrag({
file: filePath,
icon: 'img/icon/folder.png'
})
})
放入renderer.js
,并设置要退出的文件路径:
var ipcRenderer = require('electron').ipcRenderer
document.getElementById('drag').ondragstart = (event) => {
event.preventDefault()
ipcRenderer.send('ondragstart', '/Users/tim/dev/test/elektron-drag-out-test/img/icon/folder.png')
}
在 index.html
:
的 body 标签内创建可拖动元素
...
<body>
...
<a href="#" id="drag" class="draggable">drag item</a>
</body>
...
我还创建了一个 gist 用于拖入/拖出。
我打算用electron实现一个音乐播放器。它将列出用户硬盘中的音乐。
是否可以定义拖放行为以便我可以拖动 html 元素,例如<span>Artist – Title</span>
外electronwindow到用户桌面复制实际文件?
文件存储在这里:~/music/Artist-Title.mp3
.
当将 span
从我的电子 window 拖放到桌面上时,应该制作一个副本:~/Desktop/Artist-Title.mp3
.
我相信这就是您正在寻找的API。
http://electron.atom.io/docs/api/web-contents/#contentsstartdragitem
remote.getCurrentWebContents().startDrag({
file: 'path/to/file',
icon: 'path/to/file/icon',
});
工作示例:
放入main.js
复制一个拖拽显示的图标(yourAppDir/img/icon/folder.png)
:
const {ipcMain} = require('electron')
ipcMain.on('ondragstart', (event, filePath) => {
event.sender.startDrag({
file: filePath,
icon: 'img/icon/folder.png'
})
})
放入renderer.js
,并设置要退出的文件路径:
var ipcRenderer = require('electron').ipcRenderer
document.getElementById('drag').ondragstart = (event) => {
event.preventDefault()
ipcRenderer.send('ondragstart', '/Users/tim/dev/test/elektron-drag-out-test/img/icon/folder.png')
}
在 index.html
:
...
<body>
...
<a href="#" id="drag" class="draggable">drag item</a>
</body>
...
我还创建了一个 gist 用于拖入/拖出。