【译】使用 WebView2 将最好的 Web 带到 .NET 桌面应用程序中
在去年的 Build 大会上,我们引入了 WebView2,这是一个浏览器控件,可以用新的基于 Chrome 的 Microsoft Edge 来呈现 Web 内容(HTML / CSS / JavaScript)。它最初的范围仅限于 C/C++ 应用程序。今天,我们很高兴地宣布 .NET 应用程序的 WebView2 预览版发布了!WebView2 对 .NET Core 和 .NET Framework 都支持。它可以在 WPF、Windows Form 和 WinUI 3.0 应用程序中使用,一直到 Windows 7。

重要提示:当安装 NuGet 包时,确保选中“Include prerelease”复选框,并选择带有 -prerelease 后缀的版本。否则你将得不到 .NET 的支持。
以后,我们会根据路线图每6周更新一次 SDK,并会得到大家的反馈。您可以在发布说明中了解最新的更新。
关于控件
在 WebView2 控件家族的帮助下,您可以在桌面 .NET 应用程序中托管 Web 内容,并使用 Web 提供的所有好处来增强它们,例如动态内容、现代用户界面和工具。
过去
最初,我们从基于 Internet Explorer 的 WebBrowser 控件开始,因此不再适合现代 Web 内容。然后我们创建了一个基于 Edge 的控件,叫做 WebView。这个控制只能在 Windows 10 上运行,而且不能被包括在你的 app 里。我们听到您的反馈响亮而清楚,你想要一个现代和一致的控件,支持从 Windows 7 开始的所有 Windows 版本。这就是 WebView2 的诞生。它是基于 Microsoft Edge Chromium 平台,一致地支持从 Windows 7 开始的所有 Windows 版本。它每6周一次更新,使您能够使用最新的功能。
现在
WebView2 支持许多特性,如导航、Web 消息传递(应用程序和 WebView2 控件之间的通信)、本地对象注入(直接从 JavaScript 访问应用程序对象)等等。查看我们的文档以了解更多细节。在微软,我们在很多应用程序中使用 WebView2。一个例子是 Outlook 桌面版的 Room Finder 面板。通过使用 WebView2,我们能够重用来自 Outlook Web UI 的代码,并使其可以直接访问桌面版本。

未来
目前 WebView2 处于预览状态,我们正在开发 GA 版本。作为这一努力的一部分,我们将支持 Windows Form 和 WPF 的设计器支持,所以你可以喜欢的熟悉的拖放和所见即所得的方式使用。有关更多信息,请参阅我们的路线图。今天已支持 WindowsForm 的 .NET 框架设计器体验,其他的即将来临。
支持的平台
预览版目前支持以下平台:
Win32 C/C++
.NET Framework 4.6.2 or later
.NET Core 3.0 or later
WinUI 3.0
和以下windows版本:
Windows 10
Windows 8.1
Windows 8
Windows 7
Windows Server 2016
Windows Server 2012
Windows Server 2012 R2
Windows Server 2008 R2
原文链接

【译】使用 WebView2 将最好的 Web 带到 .NET 桌面应用程序中的更多相关文章
- Jena 简介:通过 Jena Semantic Web Framework 在 Jave 应用程序中使用 RDF 模型
简介: RDF 越来越被认为是表示和处理半结构化数据的一种极好选择.本文中,Web 开发人员 Philip McCarthy 向您展示了如何使用 Jena Semantic Web Toolkit,以 ...
- web容器线程数和程序中线程阻塞导致 请求超时
问题描述: web项目启动之后.调用dubbo的远程服务. 但是有个基础服务报错. 当并发访问用户量上来之后. dubbo服务的报错返回 比正常服务慢 不能正常消费服务 清理服务线程. 也就是dubb ...
- 使用Flex构建Web和移动参考应用程序
范例文件 Shopping Cart Sales Dashboard Expense Tracker 需要的其他产品 Android 2.2及更高版本或Android 3.0及更高版本的设备 仅仅在F ...
- .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件
系列目录 [已更新最新开发文章,点击查看详细] WebView2组件支持在WinForm.WPF.WinUI3.Win32应用程序中集成加载Web网页功能应用.本篇主要介绍如何在WinForm ...
- .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件
系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件>中介绍了WinForm ...
- Node.js + Web Socket 打造即时聊天程序嗨聊
前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前 ...
- Web 应用程序中的安全向量 – ASP.NET MVC 4 系列
Web 程序运行在标准的.基于文本的协议(HTTP 和 HTML)之上,所以特别容易受到自动攻击的伤害.本章主要介绍黑客如何滥用应用程序,以及针对这些问题的应对措施. 威胁:跨站脚本 ...
- mac版微信web开发者工具(小程序开发工具)无法显示二维码 解决方案
微信小程序概念的提出,绝对可以算得上中国IT界惊天动地的一件大事,这可能意味着一场新的开发热潮即将到来, 我也怀着激动的心情准备全身心投入其中,不过截止目前,在官方网站上下载的最新版本都无法使用,打开 ...
- [转]从网页Web上调用本地应用程序(.jar、.exe)的主流处理方法
这个方法主要思路是利用自定义URL Protocol来调用应用程序.浏览器在解析到自定义URL Protocol之后,会寻找注册表,然后通过注册表启动相应的程序,然后启动改程序,传入参数.对于我这个项 ...
随机推荐
- 0基础掌握接口测试神器-Postman
一:Postman环境搭建 1:postman是什么?Postman是一款功能强大的网页调试与发送网页HTTP请求的接口测试工具.2:postman有几种安装方式?两种,应用程序和浏览器插件 3:po ...
- Windows Server 2012 两台服务器文件同步
下载cwRsyncServer软件安装(这是Windows下的文件同步软件) 一.(1)在文件客户端服务器安装该软件,找到安装位置下的rsyncd.conf,修改配置文件(注意在Windows下输入位 ...
- GA教程:使用自定义变量来扩展高级细分
http://www.wocaoseo.com/thread-64-1-1.html 您可以使用自定义变量来扩展高级细分的范围. 高级细分依据的标准是用户的会话(访问)数据.如果某个访问者在指定日期范 ...
- Java自学-图形界面 Swing中的线程
Swing中的线程 步骤 1 : 三种线程 在Swing程序的开发中,需要建立3种线程的概念 初始化线程 初始化线程用于创建各种容器,组件并显示他们,一旦创建并显示,初始化线程的任务就结束了. 事件调 ...
- e3mall商城总结12之购物车的实现、以及购物车小计问题、json406报错
说在前面的话 1.本节主要讲了e3mall购物车的实现方法,我搭建的项目和系统购物车有一些区别,因此这里需要说一下.系统搭建的项目在未登陆的情况下也可以通过cookie进行加入购物车,当用户要下单的时 ...
- Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案
本文为霍格沃兹测试学院学员学习笔记. Python 装饰器简介 装饰器(Decorator)是 Python 非常实用的一个语法糖功能.装饰器本质是一种返回值也是函数的函数,可以称之为“函数的函数”. ...
- 整理最全的Android开发工程师面试题,面试题详解。java、Android程序员
1. 请描述下Activity的生命周期. 必调用的三个方法:onCreate()--> onStart() --> onResume(),用AAA表示 (1)父Activity启动 ...
- 【Pytorch-入门】windows下的环境搭建(经验证成功~)
前言 实验需要,之前使的tensorflow[因为自己手边的服务器都是windows环境TT...],但身边的师兄们用的都是pytorch,自己查了查现在做科研基本上都是用的pytorch,而且现在p ...
- VS停止调试,IIS Express也跟着关闭了
问题描述: 我们会时不时地用VS进行调试,当点击停止调试的时候,网站再刷新一下,便会出现网页走丢的现象,然后需要重新打开网站,很是麻烦,令人抓狂.如何解决呢? 首先说下,为啥会产生这种问题? 大致描述 ...
- HashMap源码解析、jdk7和8之后的区别、相关问题分析(多线程扩容带来的死循环)
一.概览 HashMap<String, Integer> map = new HashMap<>(); 这个语句执行起来,在 jdk1.8 之前,会创建一个长度是 16 的 ...