Internet Explorer
Internet Explorer 在Windows 10 升级为Edge模式,是一种交互性和兼容性都很强的新型浏览器,该浏览器相比以前的版本更新了超过2000个操作性问题,支持20个新平台特性来促进交互性和兼容性。详情: http://blogs.msdn.com/b/ie/archive/2014/11/11/living-on-the-edge-our-next-step-in-interoperability.aspx
WebView Edge mode Browsing
所有Windows 10 系统下的WebView控件使用了相同的浏览器渲染引擎,提供了 统一的html标准。
WebView.UnsupportedUriSchemeIdentified event
新增的WebView.UnsupportedUriSchemeldentified事件能够让WebView捕获到不受支持的uri地址,让我们开发者提供处理这些不受支持的URI方案。
XAML:
<WebView x:Name="myWebView" UnsupportedUriSchemeIdentified="OnUnsupportedUriSchemeIdentified" />
C#:
private void OnUnsupportedUriSchemeIdentified (WebView sender, WebViewUnsupportedUriSchemeIdentifiedEventArgs e) { // Block all URIs from invoking other apps except the mailto: protocol. if (e.Uri.Scheme != "mailto") { e.Handled= true; } }
WebView.NewWindowsRequested event
WebView.NewWindowsRequested事件能在WebView捕获脚本请求一个新的浏览器窗口动作。默认情况下当用户点击一个href或者按钮调用Windows.Open时,会启动默认浏览器来打开请求的导航,现在开发者可以自己捕获该动作,自行处理业务逻辑。
例子中,捕获该事件后创建一个新的WebView控件来显示所请求的内容:
XAML:
<WebView x:Name="myWebView" NewWindowRequested="OnNewWindowRequested" />
C#:
private void OnNewWindowRequested (WebView sender, WebViewNewWindowRequestedEventArgs e) { if (e.Referrer.Host == "www.xxxxxx.com") { var newWebView = new WebView(); newWebView.Navigate(e.Uri); myGrid.Children.Add(newWebView); e.Handled = true; } }
WebView.PermissionRequested event
WebView支持最新的Html5技术,有些Html5 Api的调用是需要用户授权的,比如获取地理位置Api,而WebView.PermissionRequested事件能捕捉要求用户许可授权的动作。
WebView.UnviewableContentIdentified event
WebView.UnviewableContentIdentified 事件可以捕获到WebView尝试下载不受支持的文件时发生,当捕捉到该事件后你可以自行处理此事件 并使用Launcher类将文件重定向到浏览器或者其他应用程序。
例子:
C#:
void webView1_UnviewableContentIdentified(WebView sender, WebViewUnviewableContentIdentifiedEventArgs args) { appendLog(String.Format("Content for /"{0}/" cannot be loaded into webview. " + "Invoking the default launcher instead./n", args.Uri.ToString())); // We turn around and hand the Uri to the // system launcher to launch the default handler for it. Windows.Foundation.IAsyncOperation<bool> b = Windows.System.Launcher.LaunchUriAsync(args.Uri); pageIsLoading = false; }
WebView.AddWebAllowedObject method
该方法可以在WebView中添加一个Windows RunTime对象到html Document对象中。该对象必须集成IAgileObject接口并附加AllowForWeb特性。
例子:
C#:
private void navigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) { if (args.Uri.Host == "www.contoso.com") { myWebView.AddWebAllowedObject("name", new MyClass()); } }
WebView.ClearTemporaryWebDataAync method
该方法能清除WebView中保存的用户会话状态和缓存数据,来防止另一个用户访问到以前的数据。例如,当用户注销登录时,你可以使用该方法清理WebView控件该用户会话的任何信息。