c# - 如何在 Windows 8 的 Web View 中捕获导航事件?

标签 c# xaml windows-8 microsoft-metro

我的应用程序中有一个 Webview,我想拦截任何点击并在 IE 中打开链接,而不是在应用程序的 Webview 中。

我只能看到 NavigationFailed 和 LoadingComplete 事件,与我可以拦截的“即将导航”事件无关。

最佳答案

似乎没有任何方法可以捕获任何导航事件。但是,您可以使用 window.external.notify() 拦截在 JavaScript 中调用的脚本事件

假设该页面是您自己托管的,您可以替换

<a href="http://www.lightwoodgames.com">LINK</a>

<a href="javascript:window.external.notify('http://www.lightwoodgames.com')">LINK</a>

然后在你的项目中你要添加

webview.ScriptNotify += webview_ScriptNotify;
webview.AllowedScriptNotifyUris = WebView.AnyScriptNotifyUri;

protected async void webview_ScriptNotify(object sender, NotifyEventArgs e)
{
  await Windows.System.Launcher.LaunchUriAsync(new Uri(e.Value));
}

关于c# - 如何在 Windows 8 的 Web View 中捕获导航事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12671047/

相关文章:

c# - XAML MVVM DatePicker - 如何获取数据?

WPF 触发器

c# - Windows.UI.Xaml.Application.Start方法解释

c# - 本地文件夹的大小限制?

c# - 跟踪 C# 日志详细信息

c# - ASP.NET MVC 不良做法 : Optional Submodel With Required Property

c# - 在 ASP.NET Core 2.0 中将 Azure Active Directory OAuth 与身份模型结合使用

c# - SELECT 和 WHERE LINQ 子句可以结合使用吗?

c# - 如何在 WPF 的一个 XAML 文件中添加多个类文件

javascript - 为什么我无法在 Windows 8 JavaScript 应用程序中通过此访问变量