gpt4 book ai didi

java - Chrome 原生消息传递 Chrome 扩展

转载 作者:行者123 更新时间:2023-12-03 12:27:08 25 4
gpt4 key购买 nike

我正在尝试将 native 消息传递与我的 chrome 扩展和 java 应用程序合并。

在我的 chrome 扩展的 javascript 中,我有以下代码。 (我的manifest.json中确实有nativeMessaging权限)

function connectToNativeApp()
{
console.log('connecting to native app...');
port = chrome.runtime.connectNative('com.app.native');
port.onMessage.addListener(onNativeMessage);
port.onDisconnect.addListener(onDisconnected);
console.log('connected to native app...');
}

当我向 native 应用程序发送消息时,我的 java 应用程序应该向扩展程序发送回消息,但事实并非如此。为了测试它是否确实连接到扩展,我在 connectNative 方法中输入了错误的主机名,但没有错误!?

我听说需要添加注册表项,因为我在 Windows 上,但我不知道如何添加,并且 regedit 中的 chrome 文件夹下没有 NativeMessagingHosts 文件夹。

我的本​​机应用程序文件夹也与 Chrome 扩展位于同一文件夹中。我尝试寻找许多教程,但发现没有一个对我的问题有用。为什么 Windows 使一切变得复杂? :)

请帮忙。感谢您的时间和帮助。子比

最佳答案

在注册表中导入以下内容

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"

示例路径可以是“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>"
]
}

只要确保您的 native 应用程序与 JSON 位于同一文件夹中,就应该没问题。就我而言,我使用 C++ native 应用程序,因此使用 exe 扩展名。如果您查看 chrome 示例,您会发现他们在 native 应用程序中使用了 python 脚本。

请记住,您将在 STDIN 上监听传入消息,并使用 STDOUT 将消息发送回 Chrome。在这两种情况下,消息都是 JSON 格式的。

关于java - Chrome 原生消息传递 Chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24144021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com