Edge (chromium) 需要非 UWP 二进制文件用于 NativeMessaging?

Edge (chromium) requires a non-UWP binary for NativeMessaging?

Edge Legacy 需要 UWP 本机消息传递主机应用程序。 这个相同的 UWP 本机消息传递主机应用程序可以用于基于 Chromium 的 Edge,还是 需要 使用 Win32 主机二进制文件?

MS Edge Chromium 扩展中的本地消息传递将以与 Google Chrome 扩展类似的方式工作。

为了注册本机消息传递主机,应用程序必须安装定义本机消息传递主机配置的清单文件。以下是清单文件的示例:

{
    "name": "com.my_company.my_application",
    "description": "My Application",
    "path": "C:\Program Files\My Application\chrome_native_messaging_host.exe",
    "type": "stdio",
    "allowed_origins": [
        "chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/"
    ]
}

清单文件的位置取决于平台。

在 Windows 上,清单文件可能位于文件系统中的任何位置。应用程序安装程序必须创建注册表项

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Edge\NativeMessagingHosts\com.my_company.my_application

HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.my_company.my_application

并将该键的默认值设置为清单文件的完整路径。例如,使用以下 shell 命令:

REG ADD "HKCU\Software\Microsoft\Edge\NativeMessagingHosts\com.my_company.my_application" /ve /t REG_SZ /d "C:\path\to\nmh-manifest.json" /f

或使用以下 .reg 文件:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Edge\NativeMessagingHosts\com.my_company.my_application]
@="C:\path\to\nmh-manifest.json"

当 Microsoft Edge 查找本机消息传递主机时,首先查询 32 位注册表,然后查询 64 位注册表。

要获取更多信息,您可以参考下面的link。

Native Messaging For Edge Chromium extensions

要了解 Edge 遗留扩展的方法差异,您可以参考下面的 link。

Native messaging in Microsoft Edge legacy

彼得,

目前,答案是否定的,因为 UWP 的可执行文件在部署到 Windows 10 计算机时具有混乱的路径。这使得您不太可能知道其目标路径以便您在 native-message-host 清单中指定它。