为什么在 Microsoft.Toolkit.Forms.UI.Controls.Webview 中 运行 时缺少 WebRTC 方法?

Why are WebRTC methods missing when run within a Microsoft.Toolkit.Forms.UI.Controls.Webview?

在 .NET Framework 4.6.2 Windows 应用程序中,我试图在 JavaScript 的 WebView 控件中 运行 某些 WebRTC 功能。控件来自Microsoft.Toolkit.Forms.UI.Controls.Webview (v6.1.1).

当我尝试使用 RTCPeerConnection.AddTransceiver()RTCPeerConnection.GetTransceivers() 时,我收到错误消息: Object doesn't support property or method 'addTransceiver'

当 运行 直接在 Edge 中时,代码按预期执行。

为什么不同,我如何才能看到在 WebView 控件上下文中使用的确切 API?

您使用的是哪个版本的 Edge 浏览器?我假设您使用的是 Edge Chromium,因此 API 可以 运行 在浏览器中运行良好。

RTCPeerConnection.addTransceiver()browser compatibility可以看出它只支持Edge Chromium。 Webview 控件使用 EdgeHTML 作为渲染引擎,即 Edge Legacy 引擎,因此您不能使用 WebView 中的 API。我也试过 RTCPeerConnection.GetTransceivers() 但它也不支持 Edge Legacy。

如果你想使用Microsoft Edge webview控件中的API,我建议你使用WebView2,它使用Microsoft Edge Chromium作为渲染引擎来显示本机应用程序中的 Web 内容。