电子应用程序:如何制作dialog.showOpenDialog模式

时间:2018-08-31 16:31:56

标签: javascript windows electron

在我的小型Electron应用程序中,我有几个按钮可让用户浏览文件夹以用于处理该应用程序。打开该对话框的调用将传递主浏览器窗口的ID,以便该对话框为模态对话框,并且此对话框最初似乎可以正常工作。应用程序主屏幕中的按钮似乎已禁用。但是,如果单击了禁用的按钮,则在对话框关闭时将执行这些单击。主屏幕中的所有按钮均是如此。如果在对话框显示时单击禁用的“取消”按钮,则在关闭对话框时应用程序也会关闭。

在我看来,应该不能切换回模式对话框的父级并“存储”点击。

dialog.showOpenDialog调用是在渲染器过程中进行的,这可能是问题所在吗?

Sid

2 个答案:

答案 0 :(得分:1)

在渲染器过程中,您需要使用浏览器窗口引用,而不是ID。您可以使用以下方法在渲染器过程中获取引用:remote.getCurrentWindow()。您可以按以下方式拨打电话。该示例专门用于打开多个文件,当然应该根据需要进行配置:

const { remote } = window.require('electron')
const dialog = remote.dialog

dialog.showOpenDialog(
  remote.getCurrentWindow(),
  { properties: ['openFile', 'multiSelections'] }, 
  (filePaths?) => {
      // do your thing
    }
  )

答案 1 :(得分:0)

不确定以前发生的事情,现在我无法重现该问题,因此我将其标记为关闭。

对不起,噪音, 席德