Java Chrome本机消息传递Chrome扩展
我正在尝试将本机消息传递与我的chrome扩展和java应用程序结合起来 在我的chrome扩展的javascript中,我有以下代码。(我在manifest.json中确实拥有nativeMessaging权限) 当我向本机应用程序发送消息时,我的java应用程序应该向扩展程序发回消息,但事实并非如此。为了测试它是否真的连接到扩展,我在connectNative方法中输入了错误的主机名,但没有错误 我听说需要添加注册表项,因为我在windows上,但我不知道如何添加注册表项,而且regedit中的chrome文件夹下没有NativeMessagingHosts文件夹 我的本机应用程序文件夹也与chrome扩展位于同一文件夹中。 我试着找了很多教程,但没有一本对我的问题有用。为什么Windows让一切变得复杂?:) 请帮忙。谢谢你的时间和帮助。Java Chrome本机消息传递Chrome扩展,java,javascript,google-chrome,google-chrome-extension,chrome-native-messaging,Java,Javascript,Google Chrome,Google Chrome Extension,Chrome Native Messaging,我正在尝试将本机消息传递与我的chrome扩展和java应用程序结合起来 在我的chrome扩展的javascript中,我有以下代码。(我在manifest.json中确实拥有nativeMessaging权限) 当我向本机应用程序发送消息时,我的java应用程序应该向扩展程序发回消息,但事实并非如此。为了测试它是否真的连接到扩展,我在connectNative方法中输入了错误的主机名,但没有错误 我听说需要添加注册表项,因为我在windows上,但我不知道如何添加注册表项,而且regedit
Subby在注册表中导入以下内容
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts]
[HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.app.native]
@="<YOURPATHHERE>\\com.app.native.messaging.json"
Windows注册表编辑器5.00版
[HKEY\ U当前\用户\软件\谷歌\浏览器\ NativeMessagingHosts]
[HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.app.native]
@=“\\com.app.native.messaging.json”
示例路径可以是“C:\\MyExtensions\\com.app.native.messaging.json”
确保文件夹中有一个名为com.app.native.messaging.json(或您喜欢的任何其他名称)的json文件。
在JSON文件中,添加以下内容
{
"name": "com.app.native.messaging",
"description": "Your desctiption",
"path": "<YOUR NATIVE APP NAME>.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extension: <YOUR EXTENSION HASH>"
]
}
{
“名称”:“com.app.native.messaging”,
“描述”:“您的描述”,
“路径”:“.exe”,
“类型”:“stdio”,
“允许的来源”:[
“chrome扩展:”
]
}
只要确保本机应用程序与JSON位于同一文件夹中,就可以了。在我的例子中,我使用C++本地应用程序,因此使用了EXE扩展。如果您查看chrome示例,他们已经为本机应用程序使用了python脚本
请记住,您将在STDIN上监听传入消息,并使用STDOUT将消息发送回chrome。在这两种情况下,消息都是JSON格式的。另一个答案有问题。我为此花了好几个小时 在
com.app.native.messaging.json文件中,最后一行必须如下所示:
"chrome-extension://<YOUR EXTENSION HASH>/"
“chrome扩展名://”
我没有放斜杠,所以扩展没有给出任何错误,但是应用程序没有启动。希望有帮助。是的,您需要添加一个指向本机消息json的注册表项。看看这里-另外,启用chrome日志记录。看看这里。这个答案有一个问题。请核对我的答案。
"chrome-extension://<YOUR EXTENSION HASH>/"