问题标签 [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.
c++ - 使用 c++ 插件从 chrome 浏览器下载并运行 exe
我有一个网页,当我单击一个按钮时,它应该从一个 url 下载一个 exe,并且该 exe 应该在没有用户干预的情况下自动调用。
在 Internet Explorer 中,我通过部署为 .cab 文件的 activex 控件 (.ocx) 实现了这一点。
我也计划将其扩展到 chrome 和 firefox 平台。(第一步至少镀铬)。
我不想使用 Java 小程序(需要删除 java 依赖项)。我知道我可以通过 Firebreath 插件实现这一点,但显然现在不是深入研究 NPAPI 插件的好时机(因为 NPAPI 已经逐渐淡出。Chrome 已经开始逐步淘汰 NPAPI)。
当我研究 NPAPI 的替代插件技术时,我偶然发现了 Google Native Client。在进一步阅读时,我知道 Nacl 也不适合我的需求,因为 os 调用 api 在 nacl 中不起作用(我希望 URLDownloadToFile api 或 createprocess 或 shellexecute 不起作用。如果我错了,请纠正我)。
我应该去本地消息传递吗?是否缺少其他替代技术?请指导我。
windows - 无法让原生消息在 Chrome 扩展程序中工作
希望您能够帮助我。我需要从 Chrome 扩展中调用一个可执行 jar。通过研究,我发现https://developer.chrome.com/extensions/messaging#native-messaging是要走的路。
所以我首先编辑了我的扩展清单并添加了:
我可以在扩展概述中看到,该权限已被授予。
当我在 Windows 上操作时,我添加了一个注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\myextension:C:\path\to\myextension.json
“myextension.json”包含:
myextension.bat 包含:
(测试只是想启动计算器)
在我的扩展程序的 js 中,我尝试通过以下方式调用它:
但什么也没有发生。第一个警报“测试”将被执行。但除此之外什么都没有发生。
我真的不知道如何调试它,因为我通过执行它没有得到任何反馈。希望您能够帮助我。
/edit 刚刚看到我得到:“Uncaught TypeError: undefined is not a function (anonymous function)”在:
或者
/edit 2 好的,现在当我在浏览器中使用一个按钮时,它可以工作了:chrome.browserAction.onClicked.addListener(function() {
chrome.extension.connectNative('fbehost');
});
但是当我想从网站上的一个按钮调用它时它不起作用:
警报有效,但没有其他任何反应。
javascript - Chrome 扩展 NativeMessaging 'connectNative' 未定义
我正在尝试使用 runtime.connectNative 和 postMessage 实现 chrome 扩展。我正在关注chrome 文档,下载了我试图在没有任何更改的情况下运行的本机消息传递示例,而本机主机应用程序的代码可以在此处找到。
但是,我收到错误:未捕获的类型错误:无法读取未定义的属性“connectNative”。
该错误是从 javascript 扩展文件触发的,在这一行:
port = chrome.runtime.connectNative(hostName);
在从清单中加载扩展时,如下所示:
任何想法如何解决这个问题?
Chrome 版本 34,在 Windows 7、8.1 上测试
google-chrome-extension - Chrome 原生消息传递主机访问权限
我正在将基于 NPAPI 的插件移植到 Chrome 的本机消息传递主机。
我可以成功连接到它并运行主机应用程序。
但是主机应用程序(win32 GUI App)使用许多 win32 API,如 CreateFile 来更新自身和服务器上的其他实用程序。
主机应用程序通过安装程序 (setup.exe) 安装在 Program Files 文件夹中。因此,由于主机应用程序以当前用户权限运行(我可能错了),因此主机可能在程序文件文件夹中没有某些权限(例如在我的情况下为 CreateFile)。
通过 NPAPI,它曾经作为可执行文件运行,我猜它在系统权限下运行(我也可能错了)。
所以基本上有什么办法可以实现这一点。我知道这可能是 Chrome 试图通过 Native Host 解决的一个安全问题,但我需要这样做,否则某些可执行文件将不会从服务器更新。
此外,本机主机应用程序需要从服务器下载更多文件(我无法将其放置在安装程序中)。
此外,更新可执行文件和下载额外实用程序的源代码是跨平台的,所以我不会更改它,否则我可能需要重写很多代码。
那么有什么建议可以解决这种情况吗?
有什么方法可以通过 UAC 或其他方式获得本机主机应用程序的提升权限。我不介意是否提示用户输入 UAC 对话框。
或者除了 Native Messaging 之外还有其他选择吗?我猜氯化钠也不够用。
注意:GetLastError() 在 CreateFile 期间返回 ERROR_ACCESS_DENIED。问候, LazyCoder7。
java - 在 Java 中从 Chrome 接收本机消息
我正在尝试让 chrome 扩展程序和 Java 程序之间的本机消息传递工作。经过一番挣扎,我现在可以打开我的 Java 程序:
但我不知道如何阅读从我的分机发送的消息。我创建了一个程序,它打开一个带有文本区域的简单 JFrame。正如文档中所说,本机消息传递与标准输入和标准输出通信,我试图通过以下方式获取消息:
还尝试过:
jar 被执行,但 textarea 保持为空。我在互联网上找不到任何关于如何在 Java 中获取数据的信息。你能帮助我吗?
google-chrome - 从 chrome 浏览器启动我安装的应用程序
我的要求是从 chrome 浏览器启动我安装的应用程序,如果它安装在客户端机器上,如果没有安装,那么我想开始下载。什么是 chrome 的最佳推荐解决方案?
所以票价我试着跟随
使用了 NPAPI,但由于 chrome 弃用了 NPAPI,我无法使用。
检查 PNacl 和 Pepper API 两个 API 都没有提供对本地文件系统的访问以启动应用程序。他们只是将我的 C/C++ 代码移植到浏览器中,并在有沙盒限制的浏览器环境中运行它。
我唯一的选择是使用本机消息传递,这是真的吗?或者是否有其他简单任务的选项可以从我们的 url 启动我的应用程序,
关于“原生消息”</p>
- 用户是否需要安装我的扩展程序
- 我需要将我的扩展程序添加到 chrome 商店吗
- 如何处理非管理员用户的注册表权限
- 我可以将扩展程序安装到 chrome 以及我的应用程序安装吗
注意:- 发现一些提供商使用“外部协议请求”来启动应用程序,但是没有足够的资源我可以在哪里找到更多关于这个的信息
谢谢和问候, 普拉文
java - Chrome-application:使用本机消息传递主机启动外部应用程序(shell 脚本或 jar)
我正在开发一个 google-chrome 应用程序,我需要启动一个 Java 应用程序。(真的,我需要在没有选择文件弹出窗口的情况下读取和保存文件)。
由于 NPAPI 库已被弃用,我一直在寻找替代方案,并决定使用“本机消息传递主机”来启动外部应用程序。
为了创建我的第一个示例,我尝试启动一个 shell 脚本,因为我认为这更容易。但是我还没有设法启动脚本。我在linux下开发
清单文件在此路径中
“/etc/opt/chrome/native-messaing-hosts/com.centeropenmiddleware.l3p1.xmleditor.json”:
并且包含是:
应用程序 id 是 plfnjepfbddljeogeacemcpceiofapnm
该脚本创建一个文件:
应用程序代码在这一行失败:
捕获的错误是
要启动应用程序,我使用了这些命令
我使用稳定的谷歌浏览器版本(34.0.1847.132)
有什么不对吗?
google-chrome-extension - 如何处理本机消息传递的非管理员用户的注册表权限
请在本机消息传递注册表权限方面帮助我:
如何处理本机消息传递的非管理员用户的注册表权限。
谢谢,
普拉文
google-chrome-extension - 如何在客户端的 chrome 浏览器上安装扩展,同时网站点击/浏览
如果我的网站被用户点击/浏览,如何在客户端的 chrome 浏览器上安装扩展程序。
谢谢,
普拉文
javascript - 将 chrome 扩展上传到商店,包括本机应用程序
我有我的第一个全新的 google chrome 扩展程序,我想将它上传到 chrome 网上商店。问题是我的扩展正在使用通过 stdio 到 c++ exe 的本机消息传递。该扩展还需要安装注册表项。
是否可以将所需文件上传到 chrome 网上商店(包括 exe 和 dll 依赖项)?有没有办法自动安装注册表项(需要将消息从 chrome 扩展 js 发送到 exe),并注册 dll?