使用默认 OS 程序打开所有文件类型

Open all file types with Default OS program

有没有办法 link 使用默认 OS 程序而不是 Electron 内部程序打开所有文件扩展名?

我的文件名是从 JSON 文件加载的。 (Value.url 是在搜索过程中动态提取的文件名)

我将下面的代码修改为 link openBtnId 的点击事件,但现在我正在接收 "electron is not defined"。我有 const shell = require('electron').shell;在我的 mainJS 中。

function renderHTML(data) {
    var htmlString = "";
    $('#aceCategory').empty();
    for (i = 0; i < data.length; i++) {
        htmlString += "<p class='categoryName'>" + data[i].category + "</p>" + "<tr>" + "<td class='feedDesc'>" + "<b>" + data[i].name +
            "</b>" + "<br>" + data[i].desc + "</br>" + "<br>" + "<input type='button' id='openBtn' style='border-radius: 25px; outline: none' value='Open Link'  >" + "</td>" +
            "</tr>";

    }
    aceFeedTable.insertAdjacentHTML('beforeend', htmlString)
    $(document).on("click", "#openBtn", function() {
        electron.shell.openItem(data[i].url);
    });
}

您可以使用 shell.openItem(fullPath)

const {shell} = require("electron");
shell.openItem("/path/to/my/file");

这必须在主进程或 nodeIntegration 设置为 true 的 BrowserWindow 中完成。

我将 nodeIntegration 设置为 true 并添加了 window.$ = window.jQuery = require('jquery');到我的主窗口 html。现在它可以识别 shell.openItem.