限时!亚马逊云科技云从业者认证考试五折,未过免费补考!更有好礼相送! 了解详情
写点什么

微软偷偷决定不开源 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:1212105
用户头像
李冬梅 加V:busulishang4668

发布了 904 篇内容, 共 482.0 次阅读, 收获喜欢 1075 次。

关注

评论 2 条评论

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

NFT卡牌链游系统Dapp开发搭建

薇電13242772558

NFT 链游

TIME的新封面:元宇宙将改变一切

智捷云

元宇宙 Metaverse 智捷云 智捷云科技

一文读懂Elephant Swap的LaaS方案的优势之处

西柚子

如何做好研发精益需求管理

思码逸研发效能

研发管理 研发效能 科技

专注B2B跨境支付的背后,XTransfer的风控基础设施是如何炼成的?

XTransfer技术

TiCDC 架构和数据同步链路解析

TiDB 社区干货传送门

数据库架构设计 6.x 实践

TiDB 在长银五八消费金融核心系统适配经验分享

TiDB 社区干货传送门

安装 & 部署 OLAP 场景实践

JAVA编程规范之日志规约

源字节1号

后端技术

C# 窗体应用DataGridView,使用数据库(Sql和MySQl)对DataGridView绑定数据源,获取数据

IC00

C# 7月月更

妙啊!美团 OCTO 分布式服务治理系统,这描述也太清晰了

冉然学Java

Java 分布式 美团 #技术干货# Java 开发

多商户系统的直播功能用过吗?用过的朋友扣个 666!

CRMEB

算法题每日一练---第5天:星系炸弹

知心宝贝

算法 前端 后端 7月月更

Spring Cloud 与 K8s 的微服务设计

Damon

7月月更

转转微服务框架的连接管理

转转技术团队

微服务 RPC 服务治理

Ticmp - 更快的让应用从 MySQL 迁移到 TiDB

TiDB 社区干货传送门

性能测评

CSS 炫酷文本过渡动画

南城FE

CSS css3 前端 7月月更

图文并茂,讲解TCP和UDP协议的原理以及区别

程序知音

程序员 网络 TCP/IP 后端技术 底层原理

实时计算基本概念解析

五分钟学大数据

实时计算 7月月更

黄东旭:TiDB的优势是什么?

TiDB 社区干货传送门

人物访谈

SENSORO 付刘伟:创新技术服务为基层政府筑造数字底座

SENSORO

人工智能 大数据 物联网 城市大脑 数字政府

SeekTiger的Okaleido有大动作,生态通证STI会借此爆发?

鳄鱼视界

TiDB之rawkv升级之路v5.0.4-->v6.1.0

TiDB 社区干货传送门

迁移 版本升级 集群管理

阿里JAVA架构师面试136题含答案:JVM+spring+分布式+并发编程!

程序知音

Java 程序员 java面试 后端技术 八股文

TiDB 在多点数字化零售场景下的应用

TiDB 社区干货传送门

实践案例 社区活动 TUG 话题探讨

MRS +Apache Zeppelin,让数据分析更便捷

华为云开发者联盟

大数据 开源 后端

研发需求拆分的全流程详解 | 敏捷实践

LigaAI

开发者 研发管理 需求管理 需求分析 LigaAI

TiKV主要内存结构和OOM排查总结

TiDB 社区干货传送门

故障排查/诊断

面向高性能计算场景的存储系统解决方案

Baidu AICLOUD

异构计算 云原生存储 AI加速

面试突击67:说一下 TCP/IP 协议?以及每层的作用?

王磊

Java 面试

转转监控系统的内部原理及实践 审核中

转转技术团队

监控 Prometheus

万物皆可柯里化的 Ramda.js

掘金安东尼

前端 函数式编程 7月月更

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