首页 > 解决方案 > 当我在 Electron 应用程序中双击打开文件时,Argv[1] 返回意外值

问题描述

我正在尝试通过双击打开文件。该文件正在使用电子打包器为 Mac App Store 构建。

我进行了一些设置,以便在双击文件时打开我的电子应用程序,但是双击文件的文件名不会在命令行参数中传递给应用程序。

为 argv[0] 返回的数据是应用程序路径(如预期的那样),而 argv[1] 的数据类似于 -psn_0_857362。我的印象是 argv[1] 将是请求文件的路径,这就是我正在寻找的。

我正在使用的代码的简化版本(在 main.js 中)是:

ipcMain.on(
'getOpenFile',
function( e ) {

    let data = null;

    if ( process.argv.length >= 2 ) {
        data = process.argv[1];
    }

    e.returnValue = data;

}
);

为什么不显示路径?mac 应用商店无法做到这一点,还是我需要做其他事情才能使其按预期工作?

标签: javascriptelectron

解决方案


在 macOS 上,您可能必须从主进程监听应用程序事件打开文件:

app.on('open-file', (event, path) =>
{
    event.preventDefault();
    console.log(path);
});

推荐阅读