新的Microsoft程序现在可以接受新Microsoft的基于铬的扩展(ver )。77或以上)。我已经在边缘浏览器上测试了我的chrome扩展,它被安装在边缘浏览器中。我试图重用边缘浏览器的本地主机,这是为Chrome浏览器开发的。但不知何故,这是行不通的。
是否有人知道如何在边缘浏览器中支持chrome本机主机?还是需要使用UWP实现本机主机?
我尝试通过边缘扩展与本机主机进行通信,但得到了“未检查的runtime.lastError:指定的本地消息主机未找到”。错误。来自.js文件的代码
var hostname = "com.microsoft.edge.myExtension";
port = chrome.runtime.connectNative(hostname);
我的本机主机的清单(com.microsoft.edge.myExtension.json)文件
"name": "com.microsoft.edge.myExtension",
"description": "My Native Host",
"path": "C:\\EdgeNativeHost.exe",
"type": "stdio",
"allowed_origins": [
"extension://pbdancjikoidhjcgkfpipggnhlackjpe/"
]
}
通过运行shell命令添加注册表项
REG ADD "HKCU\Software\Microsoft\Edge\NativeMessagingHosts\com.microsoft.edge.myExtension" /ve /t REG_SZ /d "C:\com.microsoft.edge.myExtension.json" /f
请让我知道我怎么了?
发布于 2020-02-18 04:11:13
在大多数情况下,为Chromium编写的扩展运行在Microsoft (Chromium) Edge上,更改很少。关于如何将Chrome扩展移植到微软(Chromium)边缘,您可以参考本指南。
您应该检查是否使用了Microsoft Edge不支持的下列扩展API:
Chrome支持的扩展API和清单密钥与Microsoft (Chromium) Edge兼容。但是,Microsoft Edge不支持以下扩展API:
chrome.gcm
chrome.identity.getAccounts
chrome.identity.getAuthToken
chrome.identity.getProfileUserInfo
chrome.instanceID
如果您在扩展的名称或描述中使用Microsoft Edge
,您还应该重新定义Chrome
的扩展。
对于本地消息传递主机,应该特别注意::。
如果您的扩展使用
chrome.runtime.connectNative
API与本机应用程序交换消息,请确保在本机消息传递主机清单文件中将allowedorigins
设置为"extension://[Microsoft-Catalog-extensionID]
“。这使应用程序能够识别扩展。
有关更多信息,您可以参考这篇文章。本地消息传递主机的位置也与Chrome扩展略有不同。注册表项中的Google\Chrome
应该是Microsoft\Edge
。
发布于 2020-06-27 21:01:23
萨姆,
根据您提供的信息,您的注册表配置中存在问题。
请注意,如果您使用"HKEY_LOCAL_MACHINE",则路径中有"Microsoft“而不是"Google”。
否则,您可以使用"HKEY_CURRENT_USER",在路径中有"Google“,而不是”Microsoft“。
最后,您的键必须将其默认值设置为本地消息主机manifest.json文件的路径。
见下面来自微软的文档的解释
在Windows上,清单文件可能位于文件系统中的任何位置。应用程序安装程序必须创建注册表项。 HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Edge \NativeMessagingHosts\com.my_company.my_application 或 HKEY_CURRENT_USER\SOFTWARE\ Google\Chrome
还请注意,在设置扩展源之前还有其他一些要求,并且您的清单必须将'path‘值设置为本机消息宿主可执行文件。
https://stackoverflow.com/questions/60263697
复制相似问题