bigben446 2025-05-05 14:36 采纳率: 80%
浏览 43

让cherrystudio调用本地浏览器

付费回答:100元。有一个开源软件cherrystudio(https://github.com/CherryHQ/cherry-studio),Cherry Studio 是一款支持多个大语言模型(LLM)服务商的桌面客户端,兼容 Windows、Mac 和 Linux 系统。

现在需要增加一个功能,在cherrystudio左侧按钮上增加一个浏览器的图标,点击之后,直接调用本地浏览器,比如EDGE,形成左侧按钮和EDGE浏览器共存。这样有个好处,api和浏览器访问大模型,都可以在cherrystudio里面实现。但是需要完整的浏览器功能(特别是扩展插件),不希望使用 webview 或类似嵌入方式,需要启动外部本地默认浏览器。

img

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-05-05 14:36
    关注

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

    解决方案

    Cherry Studio 是一个桌面应用程序,可以使用 TypeScript 或 JavaScript 开发。要让 Cherry Studio 调用本地浏览器,可以使用以下方法:

    1. 在 Cherry Studio 的代码中,使用 child_process 模块来启动浏览器。例如:
    import { spawn } from 'child_process';
    
    const browser = spawn('google-chrome', ['https://www.example.com']);
    

    这将启动 Google Chrome 浏览器,并打开指定的 URL。

    1. 在 Cherry Studio 的代码中,使用 electron 库来创建一个浏览器窗口。例如:
    import { app, BrowserWindow } from 'electron';
    
    let win: BrowserWindow | null = null;
    
    app.on('ready', () => {
      win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
          nodeIntegration: true
        }
      });
      win.loadURL('https://www.example.com');
    });
    

    这将创建一个新的浏览器窗口,并打开指定的 URL。

    1. 在 Cherry Studio 的代码中,使用 electron 库来创建一个浏览器窗口,并使用 webview 元素来显示网页。例如:
    import { app, BrowserWindow } from 'electron';
    
    let win: BrowserWindow | null = null;
    
    app.on('ready', () => {
      win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
          nodeIntegration: true
        }
      });
      win.loadURL('https://www.example.com');
      win.webContents.on('did-finish-load', () => {
        win.webContents.executeJavaScript(`window.open('https://www.example.com', '_blank');`);
      });
    });
    

    这将创建一个新的浏览器窗口,并打开指定的 URL。然后,在网页加载完成后,使用 executeJavaScript 方法来执行 JavaScript 代码,打开一个新的浏览器窗口。

    这些方法都可以让 Cherry Studio 调用本地浏览器,但是需要根据具体情况选择合适的方法。

    评论

报告相同问题?

问题事件

  • 修改了问题 5月5日
  • 修改了问题 5月5日
  • 创建了问题 5月5日