c# webview2 wpf 与网页js交互
时间: 2024-01-29 10:03:09 浏览: 300
在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进行交互的步骤。
阅读全文