javascript - 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)
任何对正在发生的事情以及为什么会发生这种情况的见解将不胜感激!
解决方案
推荐阅读
- wordpress - 我的网站加载非常缓慢,我不知道为什么
- discord.js - 从 client.once('ready' 等 discord.js 中运行 client.setActivity
- c - 重新排序如何消除反向循环携带依赖
- mysql - 使用 promise 将大数组插入 MariaDB
- visual-studio-code - vscode 的这个主题叫什么名字?
- sql - 将 Oracle 特定的 sql 迁移到 postgresql
- google-api - Google Drive API 不允许发布文件
- reactjs - 使用相同组件的两个组件
- php - 查询使用聚合时 Laravel mongodb 返回日期格式错误
- c# - PostAsync API 提供了错误的网关