首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebView2 -嵌入到WinForms中-连接到WebSocket

WebView2 -嵌入到WinForms中-连接到WebSocket
EN

Stack Overflow用户
提问于 2022-12-02 01:48:06
回答 1查看 41关注 0票数 0

在C#中,是否可以通过连接到DevTools (我知道这是可能的,因为我做到了),然后再连接到WebSocket,从而侦听返回到WebView2浏览器的所有响应,从而连接到WinForms中的WebView2控件?如果是,我可以使用什么接口来连接到WebSocket?我用CefSharp浏览器控件做了类似的事情,但在WebView2中找不到套接字接口.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-02 02:16:47

是的,通过连接到WinForms应用程序中的DevTools和WebSocket,可以连接到嵌入在WinForms应用程序中的DevTools控件。这将允许您侦听返回到WebView2浏览器的所有响应,并根据需要处理它们。

要连接到WebView2控件的DevTools,可以在Microsoft.Web.WebView2.Core命名空间中使用WebView2DevToolsProtocolEventReceiver类。该类提供可用于侦听来自DevTools的消息的事件,如ConsoleMessageAddedNetworkMessageReceivedPageNavigationCompleted。下面是一个如何使用这个类连接到DevTools的示例:

代码语言:javascript
复制
// Import the WebView2DevToolsProtocolEventReceiver class
using Microsoft.Web.WebView2.Core;

// Create a WebView2DevToolsProtocolEventReceiver object
WebView2DevToolsProtocolEventReceiver devToolsReceiver = new WebView2DevToolsProtocolEventReceiver();

// Listen for messages from the DevTools
devToolsReceiver.ConsoleMessageAdded += (sender, args) =>
{
    Console.WriteLine($"Console message: {args.Message}");
};

此代码创建一个WebView2DevToolsProtocolEventReceiver对象并侦听ConsoleMessageAdded事件,每当消息添加到DevTools控制台时就会触发这些事件。当接收到消息时,它将被打印到控制台。

一旦连接到DevTools,就可以使用System.Net.WebSockets命名空间中的WebSocket类连接到WebView2控件的WebSocket。WebSocket类提供了通过WebSocket连接(如ConnectAsyncSendAsyncReceiveAsync )发送和接收消息的方法。下面是如何使用这个类连接到WebView2控件的WebSocket的示例:

代码语言:javascript
复制
// Import the WebSocket class
using System.Net.WebSockets;

// Create a WebSocket object
WebSocket webSocket = new WebSocket();

// Connect to the WebView2 control's WebSocket
await webSocket.ConnectAsync(new Uri("ws://localhost:9222/devtools/page/1234"));

此代码创建一个WebSocket对象,并使用ConnectAsync()方法连接到WebView2控件的WebSocket。它指定了WebSocket连接的URL,在本例中它是ws://localhost:9222/devtools/page/1234。您需要将这个URL替换为WebView2控件的WebSocket的实际URL,您可以从DevTools获得该URL。

一旦连接到WebSocket,就可以使用SendAsync()ReceiveAsync()方法通过WebSocket连接发送和接收消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74650058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档