5

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

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

4

1 回答 1

8

似乎没有任何方法可以捕获任何导航事件。但是,您可以使用 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));
}
于 2012-10-01T09:55:22.843 回答