问题标签 [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 投票
0 回答
844 浏览

python - 将 chrome 本机消息连接到 Windows 上的现有实例

我创建了一个 chrome 背景脚本和一个使用 python 运行的主机,通过执行一个链接在“清单”中的 bat 文件。一切正常,但据我了解,每次我使用我的 chrome 扩展连接到主机以进行本机消息传递时,我都会创建 python 实例并执行代码。

但是是否可以连接到现有实例(例如我执行 python 脚本)并查看输出?我希望我的问题是可以理解的。

我也不明白为什么当我执行 bat 文件时会得到一个 cmd 窗口,但是当我的 chrome 后台应用程序连接到 chrome 并且在没有窗口之间发送数据时。为什么会这样?

0 投票
1 回答
1276 浏览

python - Chrome 原生消息不接受特定大小的消息 (Windows)

我正在开发一个与本机消息传递主机一起使用的 Chrome 扩展程序。它在大多数情况下都有效,但是当我发送特定大小的消息时,我发现了一种奇怪的行为。当大小在 2560 和 2815 字节之间(十六进制的 A00 和 AFF)时,似乎删除了消息。所有后续消息也未到达,这表明流由于某种原因已损坏。

这是一个精简的 Python 原生消息传递应用程序,可用于对其进行测试:

我收到第一条消息,而不是第二条。

我查看了Chrome 存储库中的代码。似乎负责该功能的功能没有任何特别之处:

有人知道这里可能发生什么吗?

更新

我在 64 位版本的 Windows 7 和 Windows 8.1 上遇到过这个问题。

我在 Stable、Beta 和 Dev 通道上试用了 Chrome 64 位 - 版本 37、38 和 39。我还尝试了稳定的 Chrome 32 位

我使用 32 位版本的 Python 2.7.7 和 PyInstaller 2.1 为本地消息传递主机创建可执行文件。

0 投票
0 回答
847 浏览

c# - 如何沟通黑白 chrome 原生消息传递应用程序(控制台)和 winforms

我创建了一个带有原生应用消息传递的 chrome 扩展。本机应用程序是用 (Winforms) c# 编写的。一旦我们检查扩展程序,它就会开始。仅当用户单击 .exe 文件时,我才需要显示该应用程序。所以我的想法是创建一个控制台应用程序作为本机消息传递应用程序。当用户点击扩展时,控制台应用程序将在后台运行。当用户单击 .exe (winforms) 时,Winform 应用程序将启动并与控制台应用程序通信。

这是我可以采用的最佳方法吗?以及如何建立通信 b/w 控制台应用程序和 winforms?

0 投票
2 回答
7097 浏览

c++ - C++ 中的 Chrome 本地主机,无法与 Chrome 通信

我正在尝试使用runtime.connectNativeand实现 Chrome 扩展postMessage。我正在关注 Chrome 文档,下载了本机消息传递示例,并将本机应用程序更改为使用 C++。

但是,本机应用程序无法接收来自 Chrome 扩展程序的消息。

同时,当原生应用程序使用printf向chrome扩展写消息功能时,扩展无法接收,消息只是显示在控制台中。

任何想法如何解决这个问题?

0 投票
1 回答
2703 浏览

c# - 通过本机消息传递从 Chrome 扩展接收 C# 中的消息

我正在尝试从 Google Chrome 获取活动标签标题以及 URL。我已经手动安装了 Chrome 扩展并创建了一个控制台应用程序来获取活动标签标题和 url。

首先,我安装了包含 manifest.json、background.js 和 background.html 等文件的 Chrome 扩展程序。下面是我的代码。

背景.js

清单.json

背景.html

然后为原生消息创建主机原生 json 文件。下面是我的代码。

之后,为具有相同名称 (com.example.native) 的本机消息创建注册表项。

控制台应用程序代码如下----------------

我将本机主机 json 文件和 chrome 应用程序 exe 文件保存在 system32 文件夹中。但是当我要打开 www.google.com 选项卡,然后在 chrome 浏览器上打开 www.yahoo.com 时,什么也没发生。即使我已经编写了一个文件并将其保存在 system32 文件夹中,同时在 google chrome 浏览器上打开任何选项卡,但该文件尚未写入。

一旦手动成功完成,我将稍后在谷歌商店发布我的扩展。

现在我的问题是如何执行这个控制台应用程序并通过本机消息传递从 JS 文件中获取标题和 URL。我必须运行控制台应用程序吗?

我现在应该做什么。请在这方面帮助我。

任何形式的帮助将不胜感激。

0 投票
0 回答
93 浏览

python - 允许一次执行一个 python 文件

我有一个 python 文件(它是一个本机消息传递主机),它不是从 cmd 执行,而是从一个 chrome 扩展执行,它在没有控制台窗口的情况下执行它。每次重新加载 chrome 扩展时,都会再次执行 python 文件而不退出最后一个。所以我的问题是python中有没有一种方法可以跟踪该文件当时是否正在运行并关闭该进程,所以只剩下最新的一个?

0 投票
4 回答
5209 浏览

google-chrome-extension - 打开 Chrome 时本机消息传递主机未启动

我正在尝试制作一个与本机消息传递主机(即 EXE 文件)通信的页面操作扩展。

我已经安装了我的扩展,我看到它的 UI 按预期工作,但 EXE 没有启动。除此之外,我是否需要自己做一些事情来启动它?:

我已经在注册表中安装了主机,如下所示:

(我也手动添加了这个,因为 x86 和 x64 位版本的配置单元似乎很乱......)

主机清单文件:

在里面native-messaging-example-host.bat我有:

如您所见,我添加了一个以防"*"万一allowed_origins其他选项不适用于页面操作。

我也尝试将 EXE 名称直接放在清单文件中,但同样没有运气。

我仍然得到一个:

我还检查了 ProccessExplorer 以查看 Chrome 加载了哪些应用程序,以防万一它被加载,但我在那里也看不到它。

奇怪的是,我已经开始修改来自 Google 的本机消息传递主机示例,并且我认为它可以作为一个应用程序运行。当我把它变成一个页面操作扩展时,它就停止了工作。

有谁知道这里有什么问题?

0 投票
1 回答
1150 浏览

google-chrome - 后台js中的chrome扩展卸载事件

我创建了一个连接到本机消息传递应用程序的 chrome 扩展程序。原生消息应用程序需要知道扩展是未选中还是未加载。是否有任何事件可以让我发现扩展程序已卸载或未选中?这样我就可以将消息发送到我的本机消息应用程序以通知

0 投票
0 回答
580 浏览

google-chrome - 在 Opera 中的 Mac OS X 中将本机消息传递主机清单文件放置在何处

我的本地消息传递主机在 -

Windows - 铬和歌剧

Linux - 铬和歌剧

Mac OS X - 仅限 chrome

我尝试将清单文件放在多个地方,但都是徒劳的。我尝试了以下两个位置:

0 投票
1 回答
1402 浏览

c++ - 本机消息传递主机无法发送 1 MB 数据

我在 C++ 中使用本机主机,当我将 base64 从本机应用程序发送到大小为 base64 < 1M 的 chrome 扩展(本机消息传递)时,程序仍在运行。但是当我将base64从本机应用程序发送到大小base64> 1M的chrome扩展(本机消息传递)时,程序出现错误“与本机消息传递主机通信时出错”我的代码如下