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

Mac系统下Chrome扩展能否向Launch Agent或Daemon发送消息?

Mac系统中Chrome扩展向Launch Agent或Daemon发送消息的实现方案

完全可以实现,核心思路是通过Chrome的Native Messaging机制作为扩展与本地进程的桥接,再由本地辅助程序和Launch Agent/Daemon完成通信。以下是具体实现路径:

  • 步骤1:编写本地辅助程序
    这个程序作为中间层,一边通过Chrome Native Messaging协议接收扩展的消息,另一边与Launch Agent/Daemon交互。你可以用Swift、Python、Shell等任意语言实现:

    • 与Launch Agent通信:可通过AppleScript触发Agent任务,或用Unix域套接字、管道直接传递数据;
    • 与Daemon通信:可调用Daemon提供的命令行接口,或通过Mach端口、Unix套接字等系统级IPC机制发送消息。
      注意:Daemon是系统级进程,辅助程序需具备对应权限才能交互,必要时需配置sudo免密或调整权限策略。
  • 步骤2:配置Chrome Native Messaging清单
    在Mac的~/Library/Application Support/Google/Chrome/NativeMessagingHosts/目录下创建JSON清单文件(比如com.your.host.name.json),内容示例:

    {
      "name": "com.your.host.name",
      "description": "Chrome扩展与本地进程通信的桥接程序",
      "path": "/path/to/your/helper/program",
      "type": "stdio",
      "allowed_origins": [
        "chrome-extension://你的扩展ID/"
      ]
    }
    

    清单需指定辅助程序路径、允许通信的扩展ID,Chrome会通过该清单识别并允许扩展与辅助程序建立连接。

  • 步骤3:扩展侧实现Native Messaging调用
    在Chrome扩展中,通过chrome.runtime.connectNative()或chrome.runtime.sendNativeMessage()方法与辅助程序通信,示例代码:

    // 发送消息给本地辅助程序
    chrome.runtime.sendNativeMessage('com.your.host.name', {message: "Hello to Launch Agent/Daemon"}, (response) => {
      console.log('收到本地程序响应:', response);
    });
    
  • 注意事项

    • Launch Agent是用户级进程,与Chrome扩展、辅助程序权限上下文一致,通信无额外权限障碍;
    • Daemon是系统级进程,需确保辅助程序权限足够访问Daemon的通信接口,避免权限被拒绝;
    • 本地辅助程序的标准输入输出需严格遵循Chrome Native Messaging协议(消息长度用32位无符号整数表示,再发送消息内容)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:52:28