c# webview2注册js回调函数
时间: 2023-07-11 18:33:28 浏览: 351
在 C# 中使用 WebView2 控件可以通过以下步骤注册 JavaScript 回调函数:
1. 在 C# 代码中创建一个对象,该对象将用于处理 JavaScript 回调函数。
```
using System.Runtime.InteropServices;
[ClassInterface(ClassInterfaceType.AutoDual)]
public class CallbackObject
{
public void callbackFunction(string message)
{
// 处理 JavaScript 回调函数
}
}
```
2. 在 WebView2 控件中注册 JavaScript 回调函数。
```
webView.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync("window.chrome.webview.postMessage(window.document.body.innerText);");
webView.CoreWebView2.WebMessageReceived += (sender, args) =>
{
string message = args.TryGetWebMessageAsString();
// 处理 JavaScript 回调函数
};
```
在上述代码中,我们使用 AddScriptToExecuteOnDocumentCreatedAsync 方法向 WebView2 控件中添加一段 JavaScript 代码。这段代码将在文档加载完成后自动执行,它会调用 window.chrome.webview.postMessage 方法将文档内容作为参数传递给 C# 代码。
在 C# 代码中,我们使用 WebMessageReceived 事件来处理 JavaScript 回调函数。该事件会在 WebView2 控件接收到 JavaScript 代码中通过 window.chrome.webview.postMessage 方法发送的消息时触发。我们可以通过 args.TryGetWebMessageAsString() 方法获取消息内容,并将其作为参数传递给我们创建的 CallbackObject 对象的 callbackFunction 方法。
阅读全文