幻magic想 2025-02-28 20:02 采纳率: 66.7%
浏览 52
已结题

windows系统怎么把electron写的应用设为默认浏览器

弄了个类似浏览器的东西,想点击外部链接比如从文档里点开某个链接的时候触发second-instance,然后在electron里打开页面。现在遇到的问题是默认浏览器找不到我写的应用,在代码里直接设置默认浏览器也不行

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-02-28 20:02
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    在 Windows 系统中,设置 Electron 应用程序为默认浏览器需要在注册表中进行修改。下面是一个简单的解决方案:

    1. 在注册表中创建一个新的键值对,路径为 HKEY_CLASSES_ROOT\http\shell\open\command
    2. 在该键值对中添加一个字符串值,名称为 Default, 值为 Electron 应用程序的可执行文件路径,例如 C:\Path\To\Your\Electron\App.exe
    3. 在该键值对中添加一个字符串值,名称为 Argument, 值为 "%1",这将将打开的 URL 作为命令行参数传递给 Electron 应用程序。

    以下是一个示例代码,使用 Node.js 和 registry 模块来实现注册表修改:

    const registry = require('registry');
    
    // 设置默认浏览器
    registry.set('HKEY_CLASSES_ROOT\\http\\shell\\open\\command', 'Default', 'C:\\Path\\To\\Your\\Electron\\App.exe');
    registry.set('HKEY_CLASSES_ROOT\\http\\shell\\open\\command', 'Argument', '%1');
    
    1. 在 Electron 应用程序中,使用 app.setAsDefaultBrowser() 方法来设置应用程序为默认浏览器。
    const { app } = require('electron');
    
    app.setAsDefaultBrowser();
    
    1. 重新启动 Electron 应用程序,或者使用 taskkill 命令强制结束应用程序,然后重新启动。

    重要注意

    在 Windows 10 中,需要在注册表中添加一个新的键值对 HKEY_CLASSES_ROOT\http\shell\open\command\default,并将其值设置为 C:\\Path\\To\\Your\\Electron\\App.exe

    此外,在某些情况下,可能需要在注册表中添加其他键值对来确保 Electron 应用程序正确地打开 URL。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月5日
  • 修改了问题 2月28日
  • 创建了问题 2月28日