问题标签 [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 回答
1494 浏览

c++ - 如何在原生应用程序中为 Chrome 原生消息扩展使用原生主机消息

我正在开发带有本地主机消息传递的 Chrome 扩展程序。我无法在我的主机应用程序中使用消息文本。从建立连接到在扩展中获得响应,一切正常。我需要在我的应用程序中使用消息文本,以便在简单文本数据类型(字符串/字符)中进一步使用/执行。我知道消息是 UTF8 编码的形式,我试图解码但仍然出现问题,有人可以帮我吗?

当我解码消息时,chrome 扩展控制台显示错误:“与本机消息传递主机通信时出错。” 如果我在“cout”之后使用该消息文本,同样的错误是否存在“与本机消息传递主机通信时出错”。直接发送和接收消息对我来说很好。

代码是这样的:

0 投票
1 回答
2576 浏览

google-chrome - 收到“与本机消息传递主机通信时出错”。从本机主机向浏览器扩展发送消息时(Windows)

我收到“内部 onDisconnected():与本机消息传递主机通信时出错”。从我的本机主机应用程序向浏览器扩展发送消息时。

有几件事会导致这种情况:

1) 消息开头发送的长度不正确,或发送的长度字节顺序不正确(字节序)。

2) 在写入 stdout 之前不要将其置于二进制模式(如果 stdout 处于文本模式,则可以在您的代码之外添加额外的字节)。

3) 未将消息作为 UTF-8 中的有效 json 发送。实际上我不确定无效的 json 会被拒绝,但文档说消息应该是 json。

代码是:

所有三个可能的原因似乎都没有发生。但我无法找到任何详细信息(即使查看 Google 提供的来源)关于导致我的特定错误消息的原因。WriteFile() 成功,写入的字节数为 22 字节。总共写入 22 个字节,其中 4 个是长度字节。我已经验证了前 4 个字节是(十进制,而不是十六进制): 18,0,0,0 以 little-endian 方式表示后面有多少字节组成 json 消息。当我使用 DebugView 查看我的 json 消息时,它总是:{“results”:“0000”}。那是 18 个字节/字符。我什至尝试过发送转义的双引号,以防万一。在浏览器扩展中' s 背景页面我的 onDisconnected() 事件被调用,它报告最后一个 chrome 运行时错误消息(这就是我得到定义这个问题的错误消息的地方)。这意味着扩展程序和本机主机应用程序之间的连接正在关闭。帮助将不胜感激。

0 投票
1 回答
241 浏览

sockets - 本机消息传递或 http

我希望能够在 Web 应用程序中执行本地 shell 命令。

Chrome 原生消息api 似乎对此有好处,但由于它还需要后台服务,我看不出与小型 http 服务器有真正的区别。它们之间是否存在真正的结构差异?正如我所见,某处有一个用作接口的套接字。

有没有其他解决方案?

0 投票
1 回答
1321 浏览

c# - C# NativeMessaging 到 Chrome

我正在尝试创建一个插件/侦听器,以使外部应用程序将消息泵入我的 SPA 页面/应用程序。

我已经创建了清单、JS 文件并添加了一个 reg 条目,但无济于事,我的听众没有被触发。

我有:

// JavaScript 源代码

Native.js - 插件

Manifest.json - 插件 { "manifest_version": 2,


C#

程序.js

清单.json

0 投票
1 回答
2286 浏览

javascript - 为什么我会收到 Chrome 原生消息“未找到指定的原生消息传递主机。”?

我已经为此工作了一段时间,我无法弄清楚。我已阅读Chrome Native Messaging 文档,但我不断收到“未找到指定的本机消息传递主机”。来自扩展的错误。

注册表指向的清单:

扩展脚本:

请记住,一旦我 connectNative(),我就会收到错误消息。我的扩展清单中有“nativeMessaging”权限。

注册表:

调试: 我做了一些调试,发现如果我将 connectNative nativeName 从com.fordcars.chromekeys 更改为其他任何内容,我仍然会收到相同的错误,因此要么找不到注册表项,要么/并且我没有有一个好的 manifest.json

谢谢!

0 投票
3 回答
972 浏览

google-chrome-extension - 保护 Chrome 原生消息主机

我正在使用 Chrome Native Messaging 开发一个应用程序,该应用程序通过 Chrome 扩展程序启动。

我的问题是:如何确保主机应用程序与我提供的完全相同?

我需要确保扩展调用的应用程序的真实性。如果我无权读取注册表或检查是否有更改,我该如何获取它?

0 投票
1 回答
1538 浏览

windows - Chrome Extension - Message Passing to batch file

I used the sample project https://developer.chrome.com/extensions/samples I am able to run the python native app.

Is there any way to get the message within native-messaging-example-host.bat

I don't want to load python script

What I want to do here is send message from chrome {text: "xyz.bat"}

and the batch file should run START xyz.bat

0 投票
1 回答
440 浏览

google-chrome-extension - 使用 Sublime Text 插件中的“Chrome Native Messaging”

使用“Native Messaging”应该可以在 chrome 扩展程序和本机应用程序之间进行通信。https://developer.chrome.com/extensions/nativeMessaging

谷歌甚至提供了一个如何使用python“主机”应用程序执行此操作的示例:https ://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/api/nativeMessaging /host/native-messaging-example-host

我想使用这种技术在 Sublime Text 插件 (python) 和 Chrome 扩展程序之间进行通信。

  • 有没有人有这方面的经验,或者可能知道一些我可以查看的开源 ST 插件?
  • 你在清单文件的name和 中写了什么?pathsublime text 应用程序的名称和路径?
  • 我可以使用sublime text 插件中的 chromestdinstdout与之通信吗?或者在编写插件时对此有限制吗?

对不起,如果这看起来像一个愚蠢的问题,我通常做网络,而不是原生开发。

0 投票
0 回答
308 浏览

native - 无法启动本机消息传递主机

我下载了本机消息传递示例:

http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/nativeMessaging/

我试图在没有任何更改的情况下运行,但出现错误:

连接失败:无法启动本机消息传递主机。

0 投票
0 回答
234 浏览

c# - Windows XP 下的吐温消息循环

我正在开发一个 Google Chrome Twain 插件,实际上它几乎完成了。唯一的主要问题仍然存在:该插件在 Windows XP 下无法运行。这不是我们想要的。

该插件使用 Chrome Native Messaging 在 Chrome 和单独的扫描进程之间建立通信,并使用 TwainDotNet与 TWAIN 接口。

不幸的是,没有什么可以阻止 TWAIN 驱动程序向 stdout/stderr 发送任何文本,所以我被迫使用两阶段解决方案:本机消息传递主机的第一个进程通过 stdin/stdout 与 Chrome 通信,第二个进程与第一个通过匿名管道并真正完成工作(即处理消息和与 TWAIN 的接口)。

不知何故,第二个过程的管道成为 TWAIN 的问题。经过一些实验,我发现如果我在第二个进程中不创建任何管道,或者如果我创建了管道但不使用它们 - 即我不读取或写入管道,一切都会好起来的。但是,如果管道上只有一次读取或写入,则任何使用 TWAIN 的操作都会挂起,就好像线程中没有运行消息循环一样。

因此,我认为使用管道,我的意思是在管道上执行读写操作,以某种方式破坏了 TWAIN 正常工作所需的消息循环。

我是 Windows 消息处理的新手,所以

  1. 当我使用匿名管道时,我没有完全理解应用程序中发生了什么,并且
  2. 使用管道如何干扰 TWAIN,以及
  3. 为什么问题只出现在 Windows XP 下。

我唯一的想法是匿名管道异步IO是通过windows消息实现的。因此,我将感谢有助于解决此问题的信息和/或建议。

插件源可以在我的 GitHub 存储库中找到(解决方案 TwainScan): https ://github.com/ballamuth/Chrome4Net/tree/master/examples