写点什么

微软偷偷决定不开源 Linux 及 macOS 版 WebView2,网友:等了四年,我还是用 Electron?

  • 2024-07-16
    北京
  • 本文字数:3488 字

    阅读完需:约 11 分钟

大小:1.62M时长:09:26
微软偷偷决定不开源Linux及macOS版WebView2,网友:等了四年,我还是用Electron?

微软不再开源 Linux 及 macOS 版 WebView2 组件

 

2021 年,有用户曾在 GitHub 上发帖询问微软的 WebView2 组件是否会支持 Linux 和 macOS 系统。WebView2 是微软基于自家 Edge 浏览器打造的开源渲染组件,相当于微软 Edge 浏览器的一个缩小版本。

 

过去几年间,微软一直在大规模采用 WebView2 组件,例如新版 Outlook 和 Teams 等应用程序就都有引入。对于一部分开发者来说,基于 Chromium 的 WebView2 在实际表现上优于苹果的同类方案 WKWebView。

 

因此,很多开发者非常关心微软何时会面向 Linux 及 macOS 推出 WebView2 组件。如今距离当初那篇讨论帖已经过去了三年,而微软的最终决定是放弃开源。

 

微软工程师 @novac42 在讨论中表示:


经过认真考量并结合我们的长期产品策略,我们决定停止在 macOS 和 Linux 上公开发布 WebView2 的计划,转而专注在当前已经支持的平台上为客户提供最大价值。

 

感谢大家成为这个社区的重要成员并分享您的反馈。与此同时,如果您有任何其他问题或建议,请随时与我们联系。您的意见非常宝贵,我们也将继续改进 WebView2。感谢您的理解。

 

从微软工程师的回复中,我们可以看到决策的重点在于“公开发布”。微软 Edge 浏览器支持 Linux 和 Mac,所以按理说支持这两套系统的 WebView2 组件应该已经存在,只是微软可能不会对其开源。

 

这个消息让很多开发者感到失望,因为微软在 2020 年 11 月时曾明确提到,其计划首先为 macOS 提供 WebView2 支持。2023 年 3 月,微软工程师宣布将继续完善平台支持能力,包括 Mac(但不涉及 Linux)。

 

而在苦苦等待四年之后,微软最终居然放弃开源 WebView2 组件。有开发者表示,该组件是微软基于 Chromium 开源项目打造的方案,而微软目前正在内部使用该款组件,因此应该通过 SDK 或者源代码形式将其开源。

 

目前还不清楚微软最终会不会改变主意,决定重新开源 WebView2 组件。但对于一直期待 WebView2、准备将软件迁移至 WebView2 的开发者,首先要做的恐怕是关注 Electron 之类的替代方案。

 

等了四年期待落空,开发者顿感失望

 

事实上,微软最初发布 WebView2 是在 2010 年。

 

当时,微软在官方博客上宣布了 Microsoft Edge WebView2 Win32 C/C++ 版本正式发布,并且可用于生产应用程序。它们可用于任何 Win32 C/C++ 应用程序,并支持 Windows 11、Windows 10、Windows 10 IoT 企业版 LTSC x32 2019、Windows 10 IoT 企业版 LTSC x64 2019 等 Windows 版本。

 

WebView2 是 Microsoft 的新嵌入式 Web 控件,基于 Microsoft Edge(Chromium)构建。这意味着,Windows 应用开发人员可以访问现有和新应用中的最新 Web 技术。WebView2 还允许开发人员直接在其本机应用程序中嵌入和呈现 Web 内容,包括 JavaScript、HTML 和 CSS。

 

简单地说,WebView2 提供了一种在为桌面设计的应用程序 UI 中托管 HTML、CSS 和 JS 等 Web 内容的方法。它结合了本机 UI 并在本机应用程序内呈现 Web 内容。

 

使用 WebView2,可以将 Web 代码插入本机 UI 的任何部分和许多不同位置,或者在单个 WebView2 实例中构建应用程序。

 

2021 年 2 月,微软宣布 Microsoft 365 的未来版本将开始利用 WebView2 控件将 Web 内容直接嵌入本机应用程序中。

 

“Microsoft 365 应用开始提供依赖于 Microsoft Edge WebView2 的新功能或改进功能。WebView2 运行时将于 2021 年 3 月 8 日开始安装。只有运行 Windows 且安装了 Microsoft 365 应用版本 2101 或更高版本的设备才会受到影响。”

 

为了正确使用新的 Microsoft 365 应用程序,用户需要拥有 Windows WebView 2 运行时,微软表示该运行时已经于 2021 年 3 月 8 日安装。

 

随后 3 月 14 日,微软开始在 Windows 10 设备上自动安装“Microsoft Edge WebView2 Runtime”,且未向用户发出任何通知。



Microsoft Edge WebView2 运行时

 

可以从 Windows 事件日志中看到 WebView2 运行时是由 Microsoft Office 自动安装的。

 


Microsoft Office 安装 WebView2 运行时

 

微软最初表示,WebView2 运行时只会安装在运行 Microsoft 365 版本 2101 的 Windows 计算机上。然而,用户发现它也安装在非订阅的 Microsoft Office 版本中,包括 Microsoft Office Professional 2019 和 Office 2016。

 

那么,微软为什么会坚定地选择使用 WebView2 而放弃此前红极一时的 Electron?

 

与 Electron 不同,WebView2 会监控 Chromium 的行为、检测还有多少系统内存可用,从而更有效地利用内存资源优化渲染体验。如果其他应用程序或服务需要系统内存,Chromium 就会将空间移交给这些进程。如此一来,内存容量较小的低端计算机也能带来不错的性能表现。

 

WebView2 更像是一种类似于应用窗口的控件,专门用于渲染 Web 页面。事实上,WebView2 控件还允许在原生应用程序中嵌入 Web 技术(包括 HTML、CSS 与 JavaScript)。此外,WebView2 还具备以下优势:

 

  • 改进的 Web 功能:利用 Microsoft Edge Engine 可以保证内容处理速度、安全性和对最新 Web 标准的支持。这也消除了依赖旧版 Web 浏览器控件和框架嵌入的问题。

  • 本机集成:WebView2 创建了一种混合方法,将本机功能和 Web 内容结合在一个应用程序中。因此,开发人员可以利用 JS 与本机代码交互,反之亦然,以更简单、更轻松地采用新的 Web 功能。此外,在开发应用程序时,动态访问本机功能上的 Web 资产和基于 Web 的服务开辟了许多机会。

  • 增强的安全性: WebView2 还提供安全功能,通过严格分离 Web 内容和本机应用程序来保护您的应用程序免受任何脚本注入,从而防止未经授权访问系统。同时,为 Microsoft Edge Engine 提供的所有安全更新也将适用于 WebView2,确保用户获得安全的应用使用体验。

 

总体而言,WebView2 提供了一种强大而灵活的方式来集成 Web 内容和本机应用程序,而不会影响安全性,并利用最新的 Web 技术以及跨平台的统一和一致的兼容性。结合了 Web 和本机领域的最佳优势。

 

也是自那时起,用户开始盼望着微软的 WebView2 组件能够支持 Linux 和 macOS 系统。微软 Edge 团队也曾在 2022 年 6 月发布 Twitter 表示 WebView2 将在 macOS 中可用,这让开发者看到了一点希望的曙光。

 


到了 2023 年 3 月,微软又在官网解释了 WebView2 优势,即将推出 Mac 版本。一张图表展示了 Windows、Mac 和 Linux。开发者眼见着期盼已久的 macOS 版本即将发布,心中又燃起了期待。

 


随后 2023 年 10 月,微软工程师 Anupam Pattnaik 宣布新版 Teams 应用在 Mac 上正式发布。他写道:“使用 Edge WebView2 作为新版 Teams 应用的主机,我可以获取该架构的内存使用量和磁盘空间,因为资源与 Edge 共享。”

 

就在开发者以为 macOS 版本 WebView2 马上就要来了的时候,微软突然泼下来一大盆冷水。

 

微软在上周突然低调地宣布不再开源 Linux 和 macOS 系统的 WebView 组件,这难免让众多开发者表示失望,他们在 Reddit、Github 等平台上表达着自己的不满。

 

在 GitHub 上,一位 ID 名为YoavCodes 的开发者表达了对此决定的失望,甚至准备自己着手构建:

 

“真是令人沮丧的消息。我原本希望在 electrobun 使用 webview2,在 C++ 之外直接使用 Chromium 和 CEF 实在是太麻烦了。我想我们只能咬紧牙关,自己构建了。”

 

一位用户语气强烈地建议微软把支持 macOS 的 WebView2 组件开源出来,他写道:

 

“鉴于微软已经在 Mac 上通过 WebView2 支持 Teams,有人可能会认为这是一个‘当前支持的平台’。公开 API 和下载真的需要做那么多工作?如果做不到,那么就把 WebView2 源代码放在 GitHub 上,让社区去做。我敢打赌一周之内就会有一个移植版本。

 

社区已经等待 Mac 上的 WebView2 近 4 年了。它基于 Chromium 等开源项目。微软正在内部使用,因此请通过 SDK 或源代码将其公开,以便我们其他人也能获得同样的好处。”

 

也有用户给出了 WebView2 的替代方案,比如Tauri,这也是一个开源的跨平台框架,可以允许开发者通过单一代码库为 Linux、macOS、Windows、Android 和 iOS 构建应用程序。

 

此外还有Servo:一个可嵌入、独立、内存安全、模块化、超级化的 Web 渲染引擎;Servo WebRender:一款基于 GPU 的 Web 渲染器。它作为库具有很大的潜力,并且有许多应用领域,甚至可以替代端到端库;Gosub浏览器:目前尚不成熟,但在 WeView 库方面非常有前景。

 

Servo GitHub 地址:https://github.com/servo/servo

Servo WebRender GitHub 地址:https://github.com/servo/webrender

Gosub browser GitHub 地址:https://github.com/gosub-browser

 

比起不做任何承诺,做了承诺又不兑现或许更让人难以接受。

 

参考链接:

https://www.zocnet.com/archives/489.html

https://www.geeksforgeeks.org/what-is-webview2-in-microsoft-edge-browser/

https://www.bleepingcomputer.com/news/microsoft/microsoft-is-auto-installing-the-windows-10-webview2-runtime/

2024-07-16 10:1213820
用户头像
李冬梅 加V:busulishang4668

发布了 992 篇内容, 共 597.4 次阅读, 收获喜欢 1150 次。

关注

评论 2 条评论

发布
用户头像
机翻之后还是建议小编校正一下。
2024-07-16 17:09 · 上海
回复
用户头像
qq
2024-07-16 16:35 · 北京
回复
没有更多了
发现更多内容

直播预告丨阿里云佐井:关注预警6要素,帮助用户实现精准监控和告警

阿里云弹性计算

监控 预警

30 分钟轻松搞定正则表达式基础

霍格沃兹测试开发学社

云原生(三十一) | Kubernetes篇之平台基本预装资源

Lansonli

云原生 k8s 8月月更

Git实战(五)| 让工作更高效,搞定Git的分支管理

霍格沃兹测试开发学社

Junit5 架构、新特性及基本使用(常用注解与套件执行)

霍格沃兹测试开发学社

Git 实战(三) | Github 必会高频基础命令与 IDE 的 Git 集成

霍格沃兹测试开发学社

Tapdata 获阿里云首批产品生态集成认证,携手阿里云共建新合作

tapdata

阿里云 Tapdata

LED显示屏行业未来是如果发展的?市场怎么样?

Dylan

LED显示屏 led显示屏厂家

极简云上分析,释放数据价值|Kyligence 邀您参加2022秋季线上论坛

Kyligence

数据分析 数据价值 数据管理 智能多维数据库

Tapdata 杨哲轩:如何在零售行业实施主数据治理?

tapdata

Tapdata

BAT大厂都在用的Docker。学会这三招,面试、工作轻松hold住

霍格沃兹测试开发学社

Git实战(四)| Git分支管理实操,搞定在线合并和本地合并

霍格沃兹测试开发学社

Rancher 2.6 全新 Logging 快速入门(2)

Rancher

Kubernetes k8s rancher

Spring Security系列教程17--注销登录的实现及原理分析

一一哥

spring security spring-boot 注销登录

Docker 镜像构建可以分享的快乐

霍格沃兹测试开发学社

Jenkins 踩坑(四)|基于接口自动化测试完成 Jenkins+GitHub+Allure 的结合

霍格沃兹测试开发学社

开源新工具 Azure Developer CLI

Azure云科技

azure cli 应用程序 #开源

记录一次数据库CPU被打满的排查过程

京东科技开发者

数据库 cpu cpu飙满 调优 慢SQL

SUSE 加速汽车行业智能化发展

Rancher

Kubernetes k8s rancher

App自动化之dom结构和元素定位方式(包含滑动列表定位)

霍格沃兹测试开发学社

编程小白也能快速掌握的ArkUI JS组件开发

HarmonyOS开发者

HarmonyOS

Jenkins 踩坑 | job 创建、参数化、定时构建及时区偏差问题解决

霍格沃兹测试开发学社

MockServer 服务框架设计

霍格沃兹测试开发学社

超大规模跨域集群统一监控实践

移动云大数据

什么?MySQL的等值查询竟然出错了??

转转技术团队

MySQL

BAT 大厂最流行的性能压测、监控、剖析技术体系解析

霍格沃兹测试开发学社

Jenkins 踩坑(三)| Email 配置与任务邮件发送

霍格沃兹测试开发学社

PageObject(PO)设计模式在 UI 自动化中的实践总结(以 QQ 邮箱登陆为例)

霍格沃兹测试开发学社

开源,无禁止即可为

Databend

开源社区 大数据 开源 #开源 databend

技术分享 | 黑盒测试方法论—场景法

霍格沃兹测试开发学社

在window下使用 VScode 搭建 ARM 开发环境

矜辰所致

开发工具 开发环境 arm 8月月更

微软偷偷决定不开源Linux及macOS版WebView2,网友:等了四年,我还是用Electron?_微软_李冬梅_InfoQ精选文章