Windows上.NET应用程序的本机消息传递
我尽我所能地遵循了这个方法,但似乎无法让我的原生.NET应用程序在Windows上运行。在寻找其他信息的过程中,我注意到有些信息没有记录,也不清楚 首先,文档没有提到添加“nativeMessaging”权限的要求。在改变这一点之后,我走得更远了一点;Chrome现在在一个气球弹出窗口中提到“添加了新的背景应用程序” 然而,不管我做了什么尝试,下面的代码都会立即断开连接Windows上.NET应用程序的本机消息传递,.net,windows,google-chrome-extension,chrome-native-messaging,.net,Windows,Google Chrome Extension,Chrome Native Messaging,我尽我所能地遵循了这个方法,但似乎无法让我的原生.NET应用程序在Windows上运行。在寻找其他信息的过程中,我注意到有些信息没有记录,也不清楚 首先,文档没有提到添加“nativeMessaging”权限的要求。在改变这一点之后,我走得更远了一点;Chrome现在在一个气球弹出窗口中提到“添加了新的背景应用程序” 然而,不管我做了什么尝试,下面的代码都会立即断开连接 var port = chrome.runtime.connectNative( ... ); port.onDisconne
var port = chrome.runtime.connectNative( ... );
port.onDisconnect.addListener(
function()
{
console.log( "Disconnected" );
} );
根据我调试这件事的尝试,我有几个问题:
现在似乎有太多的变量让我无法调试它,而且我无法立即验证我的注册表值是否至少设置正确。我让它工作起来,我想我会尝试以尽可能多的不同方式再次打破我的解决方案,以回答我最初提出的问题。然而,我不记得/不知道为什么它以前不起作用。事实上,它是在我放弃之后才开始工作的;自从安装了一个更新(34.0.1847.116 m)后,我不得不重新启动Chrome,之后我的原生应用程序突然出现,因为我正在使用的插件仍然处于启用状态 除此之外,下面是一份报告,通过更改某些内容并查看本机应用程序是否仍在启动,来说明哪些是有效的,哪些是无效的 1。在Windows上,Chrome何时尝试从注册表中的
NativeMessagingHosts
加载清单?
每当您在正在开发的扩展上单击“重新加载”chrome://extensions/,将再次从注册表加载本机主机。换句话说,单击“重新加载”即可验证清单文件和注册表是否正确设置
2。注册表中的绝对路径,应如何格式化?
这是一个有效注册表值的示例:
C:\Users\Bleh\Some\Path即使在
Spaces\No\Problem\someManifestFile.json
- 没有周围的引号
- 使用单个反斜杠可以工作,向前斜杠也可以工作,甚至可以无限量地使用斜杠例如“C:\Some\\非常奇怪\路径”
- 需要“.json”扩展名
- 它必须是绝对的
- 需要两个反斜杠作为分隔符
- 路径可以是相对的
“
必须在那里。我认为当你在Chrome的设置部分刷新/重新加载扩展时,清单也会被加载。调试部分很糟糕,这就是为什么我使用了另一种方法:你已经知道的signer。@Scoregraphic让它工作起来,并将我的发现作为答案发布在这里。看看它是否也回答了你原来的问题会很好。