C# 使用 webview2 嵌入网页

需求:C#客户端程序, 窗口里嵌入一个web网页,可通过URL跳转的那种。并且,需要将登录的身份验证信息(token)设置到请求头里。

核心代码如下:

// 打开按钮的点击事件
private void openBtn_Click(object sender, EventArgs e)
{
    string urlText = this.urlTextBox.Text;
    Uri uri = new Uri(urlText);

    this.webView.Source = uri;
}

// webview2 控件的 CoreWebView2InitializationCompleted 事件
private void webView_CoreWebView2InitializationCompleted(object sender, CoreWebView2InitializationCompletedEventArgs e)
{
    
    webView.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All);
    webView.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false;
    webView.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = false;
    //webView.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
    webView.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
}

// 设置请求头信息
private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
{
    e.Request.Headers.SetHeader("Authorization", "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyMDA2MTcyMDQyNDMxMzE0MTM4IiwiaWF0IjoxNzE4MjYxODczLCJleHAiOjE3MTgzMjE4NzN9.AUmUMQX2R-GgkQg_IvKphfgVagl-z96DwhdAh7z-9TZ5-y4cP_9YrsGlTGHF21nvm95BMjFdbpDDdST6w_3ivA");
}

实现的效果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#使用WebView2控件,可以通过以下步骤与网页中的JavaScript进行交互: 1. 首先,确保你已经在项目中安装了Microsoft.Web.WebView2 NuGet包。 2. 在XAML文件中,将WebView2控件添加到窗口中: ```xml <Window ... xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf" > <Grid> <wv2:WebView2 x:Name="webView" Source="https://www.example.com" /> </Grid> </Window> ``` 3. 在代码中,可以使用以下代码来在WebView2控件加载完成后添加JavaScript事件监听器: ```csharp private async void WebView_CoreWebView2Ready(object sender, RoutedEventArgs e) { await webView.EnsureCoreWebView2Async(); webView.CoreWebView2.WebMessageReceived += CoreWebView2_WebMessageReceived; } ``` 4. 接下来,你可以通过以下代码向网页中注入JavaScript代码: ```csharp await webView.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync("function sendMessageToHost(message) { window.chrome.webview.postMessage(message); }"); ``` 5. 在网页中,你可以通过以下代码与C#代码进行通信: ```javascript // 向C#发送消息 window.chrome.webview.postMessage("Hello from JavaScript!"); // 接收C#发送的消息 window.chrome.webview.addEventListener('message', event => { console.log(`Received message: ${event.data}`); }); ``` 6. 在C#代码中,你可以通过以下代码接收来自网页的消息: ```csharp private void CoreWebView2_WebMessageReceived(object sender, CoreWebView2WebMessageReceivedEventArgs e) { string message = e.TryGetWebMessageAsString(); Console.WriteLine($"Received message: {message}"); } ``` 以上就是在C#使用WebView2控件与网页中的JavaScript进行交互的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值