什么是应用程序之间的本机消息传递以及它如何工作?

2023-11-24

Chrome 开发者文档提到了一个叫做Native Messaging直接从 Chrome 扩展程序或应用程序与其他桌面应用程序进行通信。

我如何判断桌面应用程序何时具有此类可用的本机消息传递以及它可以接受哪种类型的通信?有没有办法让应用程序公开它将要通信的内容?

如果我需要与该桌面应用程序的原始开发人员交谈,这是否是最常见的术语(本机消息传递),以便他们理解我所指的内容?

Windows 和 Mac 上的本机消息传递功能是否相同?


仅当应用程序注册为“本机消息传递主机”时,扩展程序才能与本机桌面应用程序通信。这意味着在预定义的、特定于平台的位置必须有一些清单文件,声明应用程序具有“本机消息传递”功能以及允许哪些扩展与此本机消息传递主机进行通信。

所以,默认情况下,这是非常unlikely您的任何桌面应用程序都支持本机消息传递。该术语是 Chrome/Chromium 特有的,不熟悉 Chrome/Chromium 的开发人员可能无法理解。尽管每个有能力的开发人员在阅读完本文后都应该能够让本机消息传递工作本机消息传递的文档。

目前,与本机应用程序通信的唯一受支持的方式是通过简单但严格的协议通过标准输入和输出管道(stdin / stdout)。如果桌面应用程序具有命令行界面,那么您可以轻松编写充当本机消息传递主机并与桌面应用程序交互的代理应用程序。它本质上是 Chrome 扩展程序和其他应用程序之间的桥梁。该代理应用程序可以用任何支持 stdin/stdout 的语言编写,并且不需要桌面应用程序原始开发人员的任何合作。

所有平台上的本机消息传递协议都是相同的,但您必须考虑系统的字节顺序,并且清单文件的位置也依赖于平台。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是应用程序之间的本机消息传递以及它如何工作? 的相关文章

  • Chrome 本机消息传递 - 为什么我会收到“找不到指定的本机消息传递主机”错误?

    根据 Chrome Native Messaging 文档 成功调用 connectNative 会返回一个端口 您可以使用该端口将消息发布到本机应用程序 Mac 应用程序 在我的例子中 nativeConnect 确实返回了一个有效的端口
  • 禁用 Chrome 66 的自动完成功能

    在 chrome 66 中 我找不到像以前那样禁用文本输入自动完成功能的方法 我试过autocomplete off and autocomplete new password 我认为它在 Chrome 63 之前一直有效 但现在不再有效了
  • 从 Chrome 应用程序使用 Google 地图 API

    我正在尝试在 Chrome 应用程序中使用 Google 地图 每当我尝试加载 JavaScript 时 都会收到错误 Refused to load the script https maps googleapis com maps ap
  • 如何获取 Google Chrome 中所有加载的 CSS 类的列表?

    有时我需要打印 CSS 类列表才能找到合适的类 最适合我的是 JS 控制台中的函数 当您键入时 JS 类列表会被加载和过滤 例如 如果我需要记住一个图像类 我输入 Img 然后加载图像类列表 ImgFolder ImgPencil var
  • 如何从上下文菜单中显示模式弹出窗口?

    如何从上下文菜单中显示模式对话框 我可以从上下文菜单中显示一个新窗口 该窗口在自己的选项卡中打开 var menuItem id rateMenu title Rate Item contexts all chrome contextMen
  • Chrome 中的 V8 原生语法

    Nodejs 有特殊标志 allow natives syntax 是否可以将这样的东西传递给 Google Chrome 或者也许开发工具提供了其他方式来访问此类信息 running node with allow natives syn
  • Chrome 通知/权限栏 - 检测是否可见

    当 Flash 请求访问相机或麦克风时 Chrome 会显示以下通知栏 有没有 JavaScript 或 AS3 方法可以检测它是否可见 我知道你问这个问题已经很长时间了 但我们终于找到了一个我想分享的解决方法 ActionScript C
  • twitter bootstrap css 在 chrome 扩展中发生冲突

    我正在使用 bootstrap 来编写我正在编写的 chrome 扩展 当作为内容脚本导入时 CSS 似乎与我正在查看的许多网站发生冲突 即使在谷歌搜索结果页面中 想知道我是否可以做些什么来将其范围限制为我使用内容脚本注入的 dom 元素
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • 浏览器会自动插入哪些 DOM 元素?

    我正在生成 XPaths 服务器端以供客户端使用 我很困惑为什么only表路径 即内容在td 在 DOM 中找不到 事实证明 现代浏览器 至少 Chrome 和 Firefox 插入了tbody文档加载时在表格行周围添加标签 看为什么浏览器
  • 加速 Chromium 构建

    我正在使用 Visual Studio 2010 在 Windows 上构建 Chromium 我遵循了在尽可能 短 的时间内构建 Chromium 的所有建议 http www chromium org developers how to
  • 使用 Javascript 检测 Pepper (PPAPI) Flash

    我们使用的是专有的文档查看器 它与某些 Chrome 版本中的 Pepper 版本的 Flash 配合得不太好 所以我希望能够检测到它并重定向到不同格式的相同内容 由于这个版本似乎落后于 NPAPI 版本 所以我一直在使用闪光检测 http
  • 绑定 popstate 事件不起作用

    我尝试在浏览器的控制台中输入以下代码 window onpopstate function alert 1 然后单击后退按钮 没有显示任何警报 难道我做错了什么 或者是否不允许将 popstate 事件绑定到控制台的页面 使用 Chrome
  • 每个窗口都有单独的会话

    我正在尝试创建一个扩展 其中每个 Chrome 窗口都有自己的会话 我们之前使用过隐身模式 但问题是 虽然主窗口和隐身窗口有单独的会话 但会话在各个隐身窗口之间共享 有没有办法将 Chrome 配置为每次打开隐身窗口时使用单独的会话 您的目
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • Web RTC 流的音频电平表

    我想为视频元素中播放的音频创建一个分贝计 视频元素正在播放 WebRTC 流 目前 WebRTC 流无法传递到 Web 音频分析器中 尽管这可能很快就会改变 参见Web Audio API 分析器节点 getByteFrequencyDat
  • Selenium Grid:设置 chrome *binary* 路径

    注意 我不是在询问设置 chrome 的路径driver 我想使用特定版本的 Chromium 运行 Selenium 节点 而不是系统上安装的默认 Chrome 这网络驱动程序文档 https sites google com a chr
  • google 使用什么算法让 Chrome 浏览器的地址栏充当许多网站的默认搜索栏?

    我想知道谷歌使用什么算法来使 chrome 浏览器的地址栏充当许多网站 如 SO Quroa 等 的默认搜索栏 但不适用于 facebook metastackoverflow 等 例如 如果你想在 stackoverflow 中搜索某个主
  • 无法使用 chrome.desktopCapture 和 RecortRTC 获取扬声器 + 麦克风音频

    我正在尝试构建一个 chrome 扩展程序 用于捕获用户屏幕及其扬声器音频 计算机音频 和麦克风音频 使用 RecordRTC 中的示例 我将以下内容拼凑在一起 但是当我打开录制的 webm文件我根本听不到任何声音 我还应该做些什么来获取音
  • 弹出窗口,中央屏幕

    我使用以下代码在 Google Chrome 扩展程序中打开弹出窗口 我的一个问题是 如何在用户屏幕中央打开弹出窗口

随机推荐

  • 如何在word中使用VBA(宏)使用/启用(RegExp对象)正则表达式

    我做了很多谷歌搜索以获得关于如何在 VBA 中使用或开始使用正则表达式的正确答案 终于明白了 所以我想和大家分享我的知识 如果我错了 请纠正我 默认情况下 Word 2007 中禁用正则表达式选项 要启用该选项 请执行以下步骤 1 Go t
  • 在 Python 方法中使用 self 作为临时变量有什么区别吗?

    有时我需要在方法定义中使用不在方法外部使用的临时变量 使用之间的行为有什么区别吗self MyVariable and MyVariable在下面的类定义中 哪种方法更好 为什么 示例1 self MyVariable class MyCl
  • Pycharm不显示绘图

    Pycharm 不显示以下代码的绘图 import pandas as pd import numpy as np import matplotlib as plt ts pd Series np random randn 1000 ind
  • Python-查找内存中的当前对象

    有没有办法找到当前内存中的对象 包括它们的名称 它们所在的位置和模块名称等 任务管理器中 main 方法之前的进程 Python exe 的内存占用为 15MB main方法完成第一次迭代后 进程Python exe内存大小为250MB 我
  • node.nextSibling 和 ChildNode.nextElementSibling 之间有什么区别?

    div Here is div 01 div div Here is div 02 div 它们不是同一件事吗 两者都返回紧随其后的节点 我读了很多文章 但在我看来都喜欢同样的东西 但不知道在哪里使用其中一个与另一个 nextElement
  • Bootstrap 方法返回 null - Android 在启动时立即崩溃

    React Native 和 React native navigation 的新手 应用程序在 iOS 上运行正常 但在启动时很快抛出以下异常 E AndroidRuntime FATAL EXCEPTION main Process c
  • Apache 反向代理到节点 - 连接被拒绝:AH00957

    我正在尝试让一个全新的基于云的服务器与默认版本的 20 04 服务器 ubuntu 一起使用 apache 和节点 节点服务器似乎正在运行 没有报告 4006 端口已打开的问题 但我相信我的 apache 配置不是 该请求将挂起很长一段时间
  • Flash Builder 中的输出文件名

    我是第一次尝试 Flash Builder 但我陷入了一个简单的任务 如何更改输出文件名 默认情况下 Flash Builder 为 SWF 提供与入口点类相同的名称 但我找不到任何地方可以更改它 Anybody 只需在编译和构建时更改主应
  • 在 Java 线程中模拟竞争条件的代码

    我是 Java 多线程新手 我正在学习竞争条件的概念 基于Oracle文档 http docs oracle com javase tutorial essential concurrency interfere html 我创建了一个示例
  • 使用 mapstruct 将 null 设置为 target

    我正在使用 mapstruct 我想知道是否有任何方法可以为某些目标属性设置 null 值 例如 public class MySource private String prop1 private String prop2 public
  • 使用 Openxml 2.0 在 Excel 中获取单元格背景颜色

    我正在尝试获取 Excel 电子表格中单元格的背景颜色 我正在使用 Open XML 2 0 SDK 我可以打开 xlsx 文件并获取单元格值 我获取背景颜色的代码如下 public BackgroundColor GetCellBackC
  • 设置 Gradle 缓存目录?

    是否可以设置 Gradle 缓存目录 而无需设置 GRADLE USER HOME 环境变量 我希望 Gradle 缓存与我的代码存在于同一工作区中 但这似乎只有通过围绕 Gradle 的 bash 脚本才能实现 为了澄清起见 我正在讨论包
  • Svc 处理程序到 SMC 调用

    如何用C编写svc处理程序来调用SMC 监视模式 指令以切换到arm cortex a9的监视模式 即从管理模式到监视模式需要在 svc 处理程序中完成哪些操作 如何在 C 中编写相同的内容 详细的答案值得赞赏 示例可以在 Linux 源代
  • 在 Python 中初始化 2D 列表:如何对每一行进行深拷贝?

    假设我想初始化一个全为 0 的 2D Python 列表 我会这样做 test 0 0 10 10 然后我开始修改第一个列表中的值 test 0 0 1 0 但这会由于某种原因影响所有列表的第一项 print test 1 0 0 0 0
  • 检测文本溢出已起作用并添加包含全文的工具提示

    我有一个包含电子邮件地址的简单跨度 span email protected span 在我的 CSS 中 跨度设置为固定宽度并带有省略号溢出 email display inline block width 100px overflow
  • maven支持kapt吗?

    是否可以在基于 Maven 的项目中运行 kapt kotlin 注释处理 如果是 我如何将 kapt 集成到 Maven 构建系统中 自 Kotlin 1 1 2 起 现在支持 Gradle 和 Maven 来运行 KAPT 插件 这记录
  • 无法通过引用传递参数 2 - uuid PDO

    我正在尝试插入UUID 和我的INSERT query handle gt beginTransaction Define query query INSERT INTO users users uuid type id VALUES uu
  • if-else-if 阶梯的两个部分的条件语句均为 true

    如果你有这样的代码 if A gt X B gt Y Action1 else if A gt X B gt Y Action2 With A gt X and B gt Y 将两个部分if else if梯子被执行 我正在处理存在此问题的
  • 多彩多姿的占位符文本

    我需要创建一个具有彩色占位符文本的 HTML 文本输入元素 所有文本都应为灰色 但结束星号应为红色 如下所示 在我看来 这是一项看似简单的任务 但实际上要复杂得多 因为浏览器限制了我们设置本机输入元素样式的能力 我听说有人使用 CSS 来覆
  • 什么是应用程序之间的本机消息传递以及它如何工作?

    Chrome 开发者文档提到了一个叫做Native Messaging直接从 Chrome 扩展程序或应用程序与其他桌面应用程序进行通信 我如何判断桌面应用程序何时具有此类可用的本机消息传递以及它可以接受哪种类型的通信 有没有办法让应用程序