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

Chrome扩展原生消息主机找不到问题排查求助

解决Chrome扩展原生消息主机“Specified native messaging host not found”错误

1. 原生消息主机Manifest路径转义错误

JSON字符串中的反斜杠需要双转义,你当前的路径"C:\Users\[My Name]\Downloads\Checkmate Extension\native_host\Model.py"会被JSON解析器识别为转义字符,导致实际路径无效。

修正示例:

"path": "C:\\Users\\[My Name]\\Downloads\\Checkmate Extension\\native_host\\run_model.bat"
// 或者使用正斜杠避免转义问题
"path": "C:/Users/[My Name]/Downloads/Checkmate Extension/native_host/run_model.bat"

2. 直接指向Python脚本的执行问题

Windows系统无法直接将.py文件作为可执行程序启动,Chrome无法直接调用该脚本。需创建一个批处理文件(.bat)来调用Python解释器执行脚本:

创建run_model.bat文件,内容如下:

@echo off
python "%~dp0Model.py"

如果Python未加入系统环境变量,需指定Python完整路径,例如:"C:\Python310\python.exe" "%~dp0Model.py"

之后修改原生消息主机Manifest的path字段指向该批处理文件(注意路径转义)。

3. 注册表项路径验证

确认注册表中HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\test的默认值是原生消息主机Manifest的完整路径,且路径同样需要双转义:

"C:\\Users\\[My Name]\\Downloads\\Checkmate Extension\\native_host\\manifest.json"

注意:注册表路径必须与manifest实际存放位置完全一致

4. 路径空格与权限问题

若路径包含空格(如Checkmate Extension),需确保注册表、manifest及批处理文件中的路径都正确保留空格;同时检查脚本所在文件夹的读写权限,确保Chrome能正常访问。

5. background.js连接方式冲突

你的代码同时使用了chrome.runtime.connectNative(持久连接)和chrome.runtime.sendNativeMessage(单次请求),两种方式不能同时针对同一主机使用,会引发连接异常。建议保留其中一种,例如单次请求写法:

var message = { type: "email_message", message: "This is an example message." };
chrome.runtime.sendNativeMessage('test', message, function(response) {
    if (chrome.runtime.lastError) {
        console.log('Error:', chrome.runtime.lastError.message);
    } else {
        console.log('Received response from native host:', response);
    }
});

内容的提问来源于stack exchange,提问作者Chibuike S. Eze

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:00:16