You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Neutralinojs中获取启动参数及关联文件路径?

嘿,这两个需求在Neutralinojs里都能轻松实现,我来给你拆解一下具体的做法:

获取启动参数

Neutralinojs专门提供了os.getCommandLineArgs() API来获取应用启动时的命令行参数,用法非常直接。你可以在主进程的代码里这样调用:

// 主进程代码(比如 main.js)
Neutralino.os.getCommandLineArgs()
  .then(args => {
    console.log("所有启动参数:", args);
    // 举个例子:如果用户用 `./my-app --env=prod --debug` 启动
    // args 数组会是 ["/path/to/my-app", "--env=prod", "--debug"]
  })
  .catch(err => {
    console.error("获取启动参数出错:", err);
  });

小提示:数组的第一个元素是应用程序自身的路径,后面的所有元素就是用户传入的自定义参数,你可以根据需求遍历或直接索引获取。

获取关联文件的路径

要实现这个需求,分两步走:先配置文件关联,再通过启动参数获取文件路径。

第一步:配置文件关联

在你的neutralino.config.json中,找到extensions.fileSystem.fileAssociations节点,添加你要关联的文件类型配置。比如关联.myext格式的文件:

{
  "extensions": {
    "fileSystem": {
      "fileAssociations": [
        {
          "name": "MyApp 自定义文档",
          "description": "MyApp专属的文件格式",
          "extensions": ["myext"],
          "icon": "/resources/icons/file-icon.ico"
        }
      ]
    }
  }
}

配置完成后,重新打包应用,系统就会识别这个文件类型并关联到你的应用。

第二步:获取文件路径

当用户双击关联的文件打开你的应用时,该文件的完整路径会作为启动参数传入。同样用os.getCommandLineArgs()来获取,只需要跳过第一个应用路径元素即可:

Neutralino.os.getCommandLineArgs()
  .then(args => {
    // 提取除应用路径外的参数,这里就是用户打开的文件路径
    const openedFiles = args.slice(1);
    if(openedFiles.length > 0) {
      const targetFilePath = openedFiles[0];
      console.log("用户打开的文件路径:", targetFilePath);
      // 接下来就可以对这个文件进行读取、解析等操作了
    }
  })
  .catch(err => {
    console.error("获取文件路径出错:", err);
  });

注意:不同平台的文件关联生效可能需要额外操作,比如macOS需要将应用打包成DMG并正确签名,Linux需要配置.desktop文件,但核心的文件路径获取逻辑都是一样的。

内容的提问来源于stack exchange,提问作者moamen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 19:52:52