在 Webview2 (WPF) 中管理对话框

Posted

技术标签:

【中文标题】在 Webview2 (WPF) 中管理对话框【英文标题】:Manage Dialogbox in the Webview2 (WPF) 【发布时间】:2021-01-29 16:01:27 【问题描述】:

我想管理 webview2 生成的对话框。 示例:确认命令或下载。

我看到可能是 CoreWebView2.ScriptDialogOpening 事件。但我不知道如何使用它。 所以,你有一个例子,因为我在 WPF 中没有找到这个事件

非常感谢

【问题讨论】:

【参考方案1】:

WebView2 控件不公开与 CoreWebView2 相同的 API。相反,WebView2 公开了 CoreWebView2 所做的一些基本 API,其余部分则通过其 CoreWebView2 属性公开其 CoreWebView2 对象。通过等待 EnsureCoreWebView2Async 方法或引发 CoreWebView2Ready 事件初始化 WebView2 控件后,此属性不为空。您可以在我们的文档中阅读有关 WebView2 control initializing the CoreWebView2 的更多信息。

这样你就可以在CoreWebView2初始化后在webView2.CoreWebView2.ScriptDialogOpening上找到事件

【讨论】:

是否可以通过 addEventListener 检测对话框打开并验证操作按钮? 当我这样做时: functionString = String.Format("document.getElementById('actionUpdateSoftwareVersionSubmit').click()") result = Await webview_Cockpit.CoreWebView2.ExecuteScriptAsync(functionString) htm 页面返回一个对话框.这是html代码。 所以我想通过我的应用程序确认命令跨度> 我在这里找到了解决方案:***.com/questions/31814031/…

以上是关于在 Webview2 (WPF) 中管理对话框的主要内容,如果未能解决你的问题,请参考以下文章

在 WPF 的另一个对话框中运行繁重任务时运行启动对话框

WebView2 (WPF) - 从本地文件夹加载网站并调用 C# 函数并调用 JS 函数

如何在 WPF 中制作模态对话框?

如何在WPF中进行模态对话?

WPF - 设置相对于用户控件的对话框窗口位置

WPF:使用模态对话框/ InputDialog查询用户