首页 > 解决方案 > Chrome 扩展程序:即使执行了所有步骤,也找不到本机消息传递主机

问题描述

使用 Javascript,我尝试创建一个本地消息传递主机,以将我的扩展连接到我的 MacBook 上的应用程序。我的manifest.json文件如下所示:

{
    "name": "YouTube Discord Presence",
    "description": "An extension used to create a rich presence for YouTube on Discord.",
    "version": "1.0",
    "manifest_version": 2,
    "content_scripts": [
        {
            "matches": ["https://*.youtube.com/*"],
            "js": ["content.js"]
        }
    ],
    "background": {
        "scripts": ["background.js"]
    },
    "permissions": [
        "nativeMessaging",
        "background",
        "tabs"
    ]
}

我遇到的问题与background.js文件有关,该文件中写入了以下内容:

var nativePort = chrome.runtime.connectNative("com.ytdp.staller");

chrome.runtime.onConnect.addListener(function(port){
    console.assert(port.name == "data");
    port.onMessage.addListener(function(msg){
        console.log("received by background.js: " + msg.title + " and more");
        port.postMessage({status: "received by background.js: " + msg.title + " and more"});
        if (msg.title != "" && msg.author != "" && msg.link != "") {
            nativePort.postMessage({
                data: "*$TITLE%*" + msg.title + "*$AUTHOR%*" + msg.author + "*$AD%*" + msg.ad + "*$LINK%*" + msg.link + "*$END%*"
            });
        }
    });
});

我有一个名为 的 JSON 文件com.ytdp.staller.json~/Library/Application Support/Google/Chrome/NativeMessagingHost其中包含以下内容:

{
    "name": "com.ytdp.staller",
    "description": "Component of the extension that runs the staller for testing purposes.",
    "path": "~/Documents/Repositories/YouTubeDiscordPresence/NativeApp/staller",
    "type": "stdio",
    "allowed_origins": [
        "chrome-extension://jilcfecdodjabafkfhmccbfkkljdcdpm/"
    ]
}

我已经确认扩展 ID 是正确的,并且可执行文件的路径也是正确的。

但是,当我尝试加载扩展时出现此错误:

Unchecked runtime.lastError: Specified native messaging host not found.

上下文和堆栈跟踪也分别在下面给出:

_generated_background_page.html
_generated_background_page.html:0 (anonymous function)

任何对正在发生的事情以及为什么会发生这种情况的见解将不胜感激!

标签: javascriptjsongoogle-chromegoogle-chrome-extensionchrome-native-messaging

解决方案


推荐阅读