【转】Win10/UWP新特性系列—Web

时间:2023-03-08 22:13:12

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

来自:http://www.wangchenran.com/uwp新技术-web.html