我希望在Edge浏览器上创建具有本机消息传递权限的Web扩展。使用Chrome和Firefox完成所有这些操作非常容易,但显然微软以自己的方式做事。我下载了SecureInput项目(https://github.com/MicrosoftEdge/MicrosoftEdge-Extensions-Demos/tree/master/SecureInput),几乎看起来它对每个人都有用,但对我来说。注意:我对UWP有0次经验。
我已经关注了该项目的自述文件,但没有运气。
我能够成功部署NativeMessagingHostInProcess项目。是的,我确实确保在PasswordInputProtection \ Program.cs和Extension \ background.js中引用了NativeMessagingHostInProcess。我不知道这是如何神奇地工作,但在部署之后,我确实看到我的Edge浏览器上安装了扩展程序。我只需要启用它。我在localhost中有secureinput.html。我在整个过程中分散了日志记录消息,事实上,当我访问http://localhost/secureinput.html时,我确实看到了扩展名。
这是它失败的地方......在background.js(连接方法):
port = browser.runtime.connectNative(“NativeMessagingHostInProcessService”);
上面的语句抛出了“对象预期”错误。
我正在运行Microsoft Edge 38.14393.1066.0,Microsoft EdgeHTML 14.14393。我正在运行Visual Studio 2017.NativeMessagingHostInProcess项目具有Target版本“Windows 10 Anniversary Edition(10.0; Build 14393)和Min版本”Windows 10(10.0; Build 10586)。
有帮助吗?
您的示例的部署和调试步骤看起来正确。但是,此功能是与随播通用Windows平台(UWP)应用程序通信的本机消息传递,它随Windows 10 Creators Update一起提供。详情请参考Native messaging in Microsoft Edge。
看起来您的Windows 10版本是14393.请尝试将您的设备升级到Windows 10 Creators Update或更高版本,以确保本机消息传递可以正常工作。您还可以检查样本的target device family min version。