问题标签 [chrome-native-messaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1113 浏览

google-chrome - 无法在 iframe 中启用 Chrome 应用

我正在尝试在外部网页中加载本机消息传递示例应用程序,如下所示:

测试.html

web_accessible_resources在应用程序的清单中添加了该属性:

清单.json

但是,当我在 test.html 中使用该应用程序时,我在控制台中收到以下错误,该错误来自应用程序中的 JavaScript 文件:

开发者控制台

未捕获的类型错误:对象 # 没有方法 'connectNative' main.js:51

有问题的代码行如下:

main.js

这是一个屏幕截图 - 当我单击“连接”按钮(调用该connect函数)时会出现问题:

JavaScript 错误:未捕获的类型错误:对象 #<Object> 没有方法“connectNative”

显然,这在应用程序独立运行时有效。如何在网页中加载应用程序?

0 投票
0 回答
1351 浏览

google-chrome-extension - Chrome Native Native Messaging Api:如何打开每个选项卡的本机应用程序(.exe)

嗨,我正在将我的 NPAPI 插件转换为本机消息传递应用程序。我已经完成了http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/nativeMessaging/ 在此示例中,每个选项卡都会启动本机应用程序(.exe)。但在我的情况下,它只为 chrome 启动一次。这是我的 manifest.json。

这是背景.html:

我只能通过调用在“background_pg_helper.js”内启动我的本机应用程序

这是一个单一的实例。

我想按选项卡启动我的本机应用程序,以便一个 .exe 可以管理一个选项卡。我该怎么做?

0 投票
1 回答
1524 浏览

google-chrome-extension - 带有原生应用消息传递的 chrome 扩展的工作示例

我正在尝试 Chrome 的原生消息传递 API,但我无法让它工作。

该文档有一个指向此示例的链接,但它不是扩展的示例,它是一个 chrome 打包的应用程序。

我已经尝试将其修改为作为扩展工作,但我缺乏正确处理它的经验。

有人可以给我一个可以与本机应用程序一起使用的 chrome 扩展的示例吗?

谢谢你。

0 投票
3 回答
2118 浏览

java - 使用可执行 Jar 文件的 Chrome 原生消息传递

我创建了一个 Chrome 扩展程序,并将 nativeMessaging 权限添加到清单中。

我正在为本地消息传递主机打开一个端口。

我的本机消息传递主机的清单指向一个可执行的 jar 文件。

当我启动我的扩展时,没有错误,连接似乎很好,但我的 jar 文件中的代码似乎永远不会运行。(为了测试,我展示了一个在 main() 方法中创建的新 JFrame。当双击 jar 文件时,它会显示 JFrame。但是当通过 Chrome Native Messaging 运行 jar 文件时,JFrame 不会出现。

有什么我想念的吗?

0 投票
0 回答
117 浏览

google-chrome-extension - 在本机消息传递主机中查找配置文件路径

我有一个本机消息传递主机,并希望找到启动它的扩展程序的配置文件路径。

我曾尝试使用NtQueryInformationProcess检索调用进程的命令行(具有配置文件路径),但似乎我并不总是能够获得SE_DEBUG_NAME读取进程内存所需的权限。

除了使用NPAPI(因为它正在消失)之外,关于如何获得它的任何其他想法?

0 投票
1 回答
302 浏览

c++ - 在 /Library/Google/Chrome/NativeMessagingHosts 中创建清单文件需要超级用户权限

这是在 Mac 10.8 上

我编写了 Google Chrome 扩展程序和一个原生消息传递可执行文件,它使用原生消息传递与 Chrome 扩展程序通信。作为开发的一部分,我的概念证明一切正常。

问题是现在我想部署它。我有我的内部安装程序,我需要通过它在 /Library/Google/Chrome/NativeMessagingHosts 目录中创建一个 com.my_company.my_product.json 清单文件,除非我询问管理员用户的密码,否则该目录无法访问。

作为将 NPPlugin 迁移到 Chrome 扩展本机消息通信的一部分,我正在做这个端口,这将取代 NPPlugin。NPPlugin 可以从 /Library 以及不需要 sudo 权限的 ~/Library 访问。

为什么清单文件需要位于根目录/库级别而不是用户〜/库级别?如果是这样,我们如何才能在 Mac 上安装它而不用管理员密码打扰用户,用户显然不太可能共享该密码。

如果有人有解决方案,Native Executable 是一个可以使用 Mac API 调用的 C++ 程序。

0 投票
2 回答
1684 浏览

google-chrome - chrome关闭时Chrome Native Messaging未关闭

我已经制作了 chrome 主机,用于在我的扩展程序和我的进程之间传递本机消息,我的进程在 chrome 启动时启动,但在我关闭 chrome 时未关闭,我应该将参数添加到主机的清单还是应该添加我的进程处理以关闭chrome关闭时的过程?

谢谢。

0 投票
1 回答
4653 浏览

google-chrome-extension - Chrome 扩展原生消息传递出现错误:“未找到指定的原生消息传递主机。”

我的平台操作系统是 win 7。我开始编写扩展程序并尝试与 C++ 应用程序通信。这是我的应用程序的清单:(xxx 是我的扩展 ID)

我还在以下位置添加注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts: "com.google.chrome.testc: D:\testC\debug\manifest.json"

但是当扩展名为“chrome.runtime.sendNativeMessage('com.google.chrome.testc', ...)”时,它总是报告“找不到指定的本机消息传递主机。”。

我错过了哪一步?或者上面有什么问题?谢谢。

0 投票
2 回答
2370 浏览

google-chrome-extension - 本机应用程序在 Chrome 扩展程序中不起作用

我正在尝试用于 Chrome 扩展的 Chrome Native Messaging API。

本机应用程序的 Manifest.json:

Windows 注册表值:

我也试过D:\\\\connectNative\\\\manifest.json

我将“nativeMessaging”添加到 Chrome 扩展 manifest.json 中的“权限”中。

本机应用程序 cpp:

完成后,我尝试使用我的 Chrome 扩展程序:

它无法接收任何消息并始终打印“已断开连接”。

我尝试连接到一个不存在的应用程序,它仍然打印“断开连接”,所以我知道这个本机应用程序配置不正确。

谁能指出什么是错的或我错过了什么?

0 投票
1 回答
601 浏览

javascript - native-app 和 chrome-extension 之间的连接在一段时间后中断

我正在使用 chrome 原生消息传递 api 在我的 chrome-extension 和用 c++ 编写的 native-windows-app 之间进行通信。

连接建立良好,数据也得到交换。但是在从扩展到本机应用程序进行随机数量的调用后,连接中断。

我尝试独立运行native-app,并且在无限循环中运行时它工作正常(没有异常发生)。

我的本机应用程序在第一次调用( encode_frame() )时生成近 300KB 的数据,然后连续调用(每 300 毫秒)生成 0 到 300KB 的数据(encode_frame_difference())。数据采用 base64 编码。

仅供参考:本机应用程序和扩展程序之间通过标准输入和标准输出进行通信。

问题是我无法弄清楚为什么一段时间后连接会中断。

这是本机应用程序代码windows-native-app-cpp

这是扩展代码chrome-extension-js

任何帮助,将不胜感激!

谢谢你。

编辑:直到现在我发现我发送的某些数据长度存在问题。

例如。如果 JSON 长度在 2560 和 2815 之间,它将停止工作。而对于像 2816 或 6656 这样的 JSON 长度,它可以工作。