【发布时间】:2021-12-27 12:56:05
【问题描述】:
我正在尝试与 webview2 中加载的页面进行互操作。基本上我想做的是从 webview 调用一个 win 表单方法,但是方法 showMessageFromWebview2 永远不会被触发。
网页内容是从 localhost 加载的。
任何帮助将不胜感激。
win形式的代码
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);
【问题讨论】:
-
应该被触发,检查 IsWebMessageEnabled 是否为真 docs.microsoft.com/en-us/dotnet/api/…
-
还要检查你的 mJsonObject,它是什么?
-
@demonplus 它只是一个包含“消息”的对象:“你好”。但即使我将一个字符串作为参数,win forms 方法也不会被触发。
-
@demonplus 我已经在 webview2 准备好时设置好了:testBrowser.CoreWebView2.Settings.IsWebMessageEnabled = true;
标签: c# .net winforms webview2 winforms-interop