找不到本机消息传递主机的清单

时间:2019-05-29 13:18:53

标签: javascript python google-chrome-extension

我目前正在尝试在chrome扩展名和NativeMessagingHost之间建立连接。一切在Windows上都可以正常运行,但在Linux(arch,kali或ubuntu)上却无法实现。 如何失败:

  

找不到本地消息传递主机my_host.json的清单

我当前的状态:

  • 将我的主机清单放在~/.config/google-chrome-beta/NativeMessagingHosts/my_host.json
    • 其中:"name":"my_host.json"以及处理消息的我的python脚本的路径,以及allowed_origins下唯一的chrome扩展代码。
  • 我扩展程序的manifest.json中的
  • 授予了nativeMessaging的权限
  • 此外,popup.js: var port = chrome.runtime.connectNative("my_host.json");中的名称与sendNativeMessage中使用的名称相同

到目前为止我尝试过的事情:

  • 尝试使用google-chrome-beta和-stable
  • 已删除的文件结尾,例如my_host.jsonmy_host,或删除python结尾
  • 我的python脚本所在的路径更容易
  • 还尝试将my_host放到/Library/Google/Chrome/NativeMessagingHosts中,该路径通常应该是Mac路径-但是,嘿,也许可以(不是)。

启动应用程序没有错误,在启动带有日志记录的chrome时从终端复制了消息。 我几乎遍历了Google提供的示例,调整路径等。

也经历过不同的帖子,但是似乎没有人遇到相同的问题,或者没有人试图做类似的事情。

1 个答案:

答案 0 :(得分:0)

所以我找出了问题所在: 我将主机的名称从my_host.json更改为com.my.host.json,并将“名称”设置为com.my.host(在此我也首先以结尾.json开头,这可能导致了问题太)。此外,我在我的js文件中将var port = chrome.runtime.connectNative("my_host.json")更改为[...]("com.my.host"),其中结尾.json也不合适。现在一切正常。谢谢您的建议!