转载

Win10/UWP新特性系列—Web

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控件该用户会话的任何信息。

正文到此结束
Loading...