如何在 WPF 应用程序中为 WebView "ScriptNotify" 添加允许的 URI 列表?
How to add a list of allowed URI's for WebView's "ScriptNotify" in a WPF app?
我正在尝试使用 "window.external.notify('my message');" 从 JavaScript 调用 C# 方法,但它似乎无法正常工作。我的猜测是我必须添加当前 window.location 允许的域列表,但我如何在 WPF 应用程序中执行此操作?我在网上看到的一切都与 UWP 有关。
private void WebView_ScriptNotify(object sender, WebViewControlScriptNotifyEventArgs e)
{
throw new NotImplementedException();
}
private void WebView_DOMContentLoaded(object sender, WebViewControlDOMContentLoadedEventArgs e)
{
webView.InvokeScript("eval", new string[] {@"window.external.notify('{}');"});
}
确保将 IsScriptNotifyAllowed
和 IsJavaScriptEnabled
属性设置为 true,然后事件应该触发。
编辑:3.0.0 包中的 WPF WebView 存在错误。一个issue has been opened on GitHub to resolve it.
编辑 2:错误已在软件包的 4.0.0 版中修复。我现在正在与社区合作,将修复程序移植到服务 3.0.0。 PR 2346
编辑 3:该错误也在 3.0 服务分支中得到修复。将在新包发布到 NuGet 时更新
编辑 4:错误已修复,新包已推送到 NuGet
我正在尝试使用 "window.external.notify('my message');" 从 JavaScript 调用 C# 方法,但它似乎无法正常工作。我的猜测是我必须添加当前 window.location 允许的域列表,但我如何在 WPF 应用程序中执行此操作?我在网上看到的一切都与 UWP 有关。
private void WebView_ScriptNotify(object sender, WebViewControlScriptNotifyEventArgs e)
{
throw new NotImplementedException();
}
private void WebView_DOMContentLoaded(object sender, WebViewControlDOMContentLoadedEventArgs e)
{
webView.InvokeScript("eval", new string[] {@"window.external.notify('{}');"});
}
确保将 IsScriptNotifyAllowed
和 IsJavaScriptEnabled
属性设置为 true,然后事件应该触发。
编辑:3.0.0 包中的 WPF WebView 存在错误。一个issue has been opened on GitHub to resolve it.
编辑 2:错误已在软件包的 4.0.0 版中修复。我现在正在与社区合作,将修复程序移植到服务 3.0.0。 PR 2346
编辑 3:该错误也在 3.0 服务分支中得到修复。将在新包发布到 NuGet 时更新
编辑 4:错误已修复,新包已推送到 NuGet