在 VS Code 扩展中从资源管理器拖放到 Web 视图中捕获 uri?

问题描述 投票:0回答:1

我有一个用 React 制作的 webview。我想实现一个拖放功能,以允许将文件从 VS-Code 资源管理器拖放到我的 Web 视图上。

所以,在我的反应代码中,我做了一个 onDrop 函数,我在其中调用:

event.preventDefault();
console.log(event);

问题是,在记录的事件中,我没有找到任何提及我删除的文件 uri(./todos.json 或类似文件)的内容。我怎样才能访问它?

与从“finder”即 Macs 文件夹中删除文件相比,效果很好。对于这些情况,我可以在以下位置找到数据:

event.dataTransfer.files

但是从 vs-code 的资源管理器中删除时,那个(甚至 event.nativeEvent.dataTransfer)是空的。

有什么想法吗?我在这里可以尝试什么?

visual-studio-code vscode-extensions
1个回答
0
投票

调用 getData 显示数据:

  const everything = JSON.stringify({
    'dataTransfer.types': Array.from(event.dataTransfer.types),
    'dataTransfer.getData(text/uri-list)': event.dataTransfer.getData('text/uri-list'),
    'dataTransfer.getData(text/plain)': event.dataTransfer.getData('text/plain'),
    'dataTransfer.files.0.name': event.dataTransfer.files.item(0)?.name,
  }, null, 2);

  console.log('Dropped:', everything);
© www.soinside.com 2019 - 2024. All rights reserved.