WebView2简单试用(三)—— 新窗口打开页面的处理

摘要:
当我们跳转到一个页面时,WebView2将弹出一个新窗口,该窗口具有默认样式,以在自定义窗口中托管新网页,defer。Complete();获取Deferral对象,将EventArgs.NewWindow的引用分配为新的CoreWebView控件,并调用Deferral.ocomplete函数。我在这里打开当前页面中的新窗口。此时,您需要等待初始化完成。

当我们进行页面跳转的时候,有的时候回使用新窗口打开,WebView2会弹出一个有默认样式的新窗口,而这往往不是我们所想要的效果。

         WebView2简单试用(三)—— 新窗口打开页面的处理第1张

要重载这一行为,实现在自定义的窗口中承载新的web页面,需要我们处理CoreWebView2.NewWindowRequested事件

    await webView.EnsureCoreWebView2Async();
    webView.CoreWebView2.NewWindowRequested += OnNewWindowRequested;

事件处理方式如下:

    var deferral = e.GetDeferral();
    e.NewWindow = webView.CoreWebView2;
    deferral.Complete();

简单的来说有如下三步:

  1. 获取Deferral对象
  2. 将EventArgs.NewWindow的引用赋为新的CoreWebView控件
  3. 调用Deferral.Coimplete函数

我这里是将新窗口在当前页面中打开,实现类似多tab页的浏览器。则需要新建webview2控件,此时需要注意等待初始化完成,并且新的webview2控件同样要增加NewWindowRequested的处理:

    var deferral = e.GetDeferral();     //需要同步获取,不要异步等待后再获取
    await webView.EnsureCoreWebView2Async();
    e.NewWindow = webView.CoreWebView2;
    deferral.Complete();

参考文档:

Create tabs using WebView2 - Edge

免责声明:文章转载自《WebView2简单试用(三)—— 新窗口打开页面的处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue-cli-service: command not found(Mac环境下)vscode过滤部分文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

网易云信Duilib开发实践和Windows应用界面开发框架源码开源介绍

序言 Duilib介绍 Duilib是windows平台下的一款轻量级directUI开源库(遵循BSD协议),完全免费,可用于商业软件开发,只需在软件包里附上协议文件即可。Duilib可以简单方便地实现大多数界面需求,包括换肤、换色,透明等功能,支持多种图片格式,使用XML可以方便地定制窗口,能较好地做到UI和逻辑相分离,尽量减少在代码里创建UI控件。目...

百度统计 ---手动检查百度统计代码安装是否成功

第一步:  用chrome打开你的安装统计的站点页面,打开工具-进入开发者工具(或者直接使用快捷键ctrl+shift+I)选择 network 第2步:开始刷新页面,点击工具栏的network状态 第三步: 搜索百度统计的统计流量的图片hm.gif,确定是否存在hm.gif图片请求,如果存在则标示统计代码安装正确。           a:  特别提示关...

CSS选择器命名及常用命名

CSS选择器命名及常用命名CSS选择器命名及常用命名 规范的命名也是Web标准中的重要一项,标准的命名可以使代码更加易读,而且利于搜索引擎搜索,比如定义了两个div,一个 id 命名为“div1”,另外一个命名为“News”,肯定第二个比较易读,而且搜索引擎抓取率要高,在团队合作中还可以大大提高工作效率。为了达到这种效果我们就要规范化命名(语义化命名)!...

CSS专题(三):页面高度发微

一 背景   本文不讨论普通元素的大小和位置,仅仅讨论页面的大小和位置,而且为了简化问题,本文只讨论高度与顶部距离。笔者发现,页面的宽度与高度的表现有很多不同,细心的朋友会发现,故页面宽度另起文讨论,文章已经写好,见页面宽度发微。   这里说的页面高度,是指浏览器页面的高度。有以下四种元素能够表现页面的高度:window,html,document,bod...

c#Winform自定义控件-目录

前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git 如果觉得写的还行,请点个 star 支持一...

微信小程序,前端大梦想(三)

微信小程序的事件及生命周期   继续下节课,今天我们还是从四个方面来了解小程序:     ●常用事件和事件冒泡   ●配置   ●app生命周期及app对象的使用   ●页面的生命周期   一、事件的绑定:   事件一方面可以理解成用户的行为,当用户对UI层做了某些操作时,程序可以捕捉到操作的类型。如:点击、长按、移动等。另一方面事件也是一种通讯方式,...