ElectronDialog.showOpenDialog 不尊重 Linux 上的过滤器

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

我想在 Electron 上使用 showOpenDialog 选择文件时进行过滤。
我想让用户只能选择 Markdown (md)。
但这并没有得到尊重。
所以现在用户可以选择所有类型的文件。
我该如何解决它?

我的环境是:

ArchLinux
侏儒 46.2
电子31.0.1

const { app, BrowserWindow, dialog, ipcMain } = require("electron");
const path = require("node:path");
const createWindow = () => {
    const win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            preload: path.join(__dirname, 'preload.js')
        }
    })
    win.loadFile(path.join(__dirname, "index.html"));
    return win;
}
app.whenReady().then(() => {
    const win = createWindow()
    ipcMain.handle('FileChooser', async () => {
        const res = await dialog.showOpenDialog(win, { properties: ["openFile"], title: "Select a Markdown", filters: { name: "Markdown", extensions: ["md"] } })
        return res;
    })
})
linux electron gnome
1个回答
0
投票

filters
选项采用过滤器数组。您传递的不是一个数组,而是一个单个过滤器对象。

将对象包裹在

[]
中,以便传递一个内部包含一个过滤器对象的数组。

© www.soinside.com 2019 - 2024. All rights reserved.