首页 > 解决方案 > 使用默认操作系统程序打开所有文件类型

问题描述

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

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

我修改了下面的代码以将点击事件链接到 openBtnId,但现在我收到“未定义电子”。我有 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);
    });
}

标签: javascripthtmlnode.jselectronexternal

解决方案


你可以使用shell.openItem(fullPath)

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

这必须在主进程或nodeIntegration设置为true.


推荐阅读