我正在尝试与webview2中加载的页面进行互操作。基本上,我想做的是从webview调用一个win-form方法,但方法showMessageFromWebview2从未被激发。
web内容是从localhost加载的。
任何帮助都将不胜感激。
获胜形式的代码
async private void WebView_CoreWebView2Ready(object sender, EventArgs e)
{
testBrowser.CoreWebView2.WebMessageReceived += showMessageFromWebview2;
}
public void showMessageFromWebview2(Object sender, CoreWebView2WebMessageReceivedEventArgs args)
{
String msg = args.TryGetWebMessageAsString();
MessageBox.Show(msg);
}
Javascript代码
window.chrome.webview.postMessage(mJsonObject);
终于拿到了!谢谢@demonplus!
我刚刚将CoreWebView2.Settings和WebMessageReceived事件处理程序移动到EnsureCoreWebView 2Async方法之后的初始化块:
async private void InitializeAsync()
{
await testBrowser.EnsureCoreWebView2Async(); // Wait for coreWebView2 initialization
testBrowser.CoreWebView2.Settings.IsWebMessageEnabled = true;
testBrowser.CoreWebView2.WebMessageReceived += showMessageFromWebview2;
}