我尽我所能遵循本机消息传递文档,但似乎无法让我的本机 .NET 应用程序甚至开始在 Windows 上运行。在寻找其他信息时,我注意到有些事情没有记录且不清楚。
首先,文档没有提到添加“nativeMessaging”权限的要求。改变这个之后,我走得更远了;Chrome 现在实际上在气球弹出窗口中提到了“添加了新的后台应用程序”。
但是,无论我尝试了哪些操作,以下代码都会立即断开连接。
var port = chrome.runtime.connectNative( ... );
port.onDisconnect.addListener(
function()
{
console.log( "Disconnected" );
} );
根据我调试这个东西的尝试,我有几个问题:
- 在 Windows 上,Chrome 何时尝试从注册表中的 NativeMessagingHosts 加载清单?换句话说,我应该在更改值时重新启动 Chrome,还是在"chrome://extensions/"中重新加载扩展程序就足够了?
- 注册表中的绝对路径,应该如何格式化?例如,我看到人们只使用“\\\\”斜杠作为路径分隔符。它需要周围的引号吗?
- 有什么方法可以获取有关问题所在的更多信息?出于测试目的,我重命名了注册表项以查看是否会收到不同的错误(假设因为它无法加载它会通知我)。相反,似乎仍然调用了“onDisconnect” 。
- 与注册表中的路径类似,注册表值指向的原生应用清单文件中指向原生应用的相对路径应该如何格式化?(文档中有一个这样的例子,但只是为了确定什么有效,什么无效......)
我现在似乎有太多变量无法调试它,并且没有立即看到我如何验证我的注册表值是否至少设置正确。