4

我一直在尝试在我的 Debian linux 上运行官方的Native Messaging 示例,但是当我单击连接按钮时,没有建立与主机的连接,并且错误“找不到指定的本机消息传递主机”。被退回。

从其他有同样问题的人那里,我了解到这可能是我的本机应用程序清单中的一个错误,但我现在几个小时都找不到它。它位于~/.config/google-chrome/NativeMessagingHosts/com.google.chrome.example.echo.json并显示:

{
  "name": "com.google.chrome.example.echo",
  "description": "Chrome Native Messaging API Example Host",
  "path": "/path/to/my/home/Desktop/native.py",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://mcmmilohkmnlhdododggiegdjholjfan/"
  ]
}

我唯一更改的是 chrome 扩展 ID 和路径,我检查了它们(从我的 shell 运行它时,应用程序启动并正常运行)。其代码取自上述示例。

知道可能出了什么问题吗?我难住了。

4

3 回答 3

2

好的,所以我研究了我的版本(33.0.1750.117)的 Chrome 源代码,发现 json 文件从未被读取(并使用 inotifywatch 确认了我的发现)。我认为(从这个文件第 143ff 行和这个文件判断)在搜索清单文件时从未真正查看过主目录。

但是我遇到了一个命令行开关,它可以用来定位清单文件:--native-messaging-hosts="com.google.chrome.example.echo=~/.config/google-chrome/NativeMessagingHosts/com.google.chrome.example.echo.json". 尽管这不是永久的解决方案,但它对我有用,因为我在正在开发的机器上没有 root 权限并且无法写入 /etc/opt/

于 2014-02-23T21:28:12.117 回答
2

我发现在带有 Chrome 33.0.1750.117 的 OSX 上也是如此。

您必须将其放入 /Library/Google/Chrome/NativeMessagingHosts/而不是放入用户的Library/Google/Chrome/NativeMessagingHosts/文件夹中。

(我会发表评论,但我的声誉不允许)

于 2014-02-25T20:06:43.917 回答
0

https://code.google.com/p/chromium/issues/detail?id=237873

根据这个错误,Chrome-34 将支持用户级安装

于 2014-03-25T08:51:04.210 回答