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

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

发布了 908 篇内容, 共 489.1 次阅读, 收获喜欢 1081 次。

关注

评论 2 条评论

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

玖章算术叶正盛将揭示为什么PostgreSQL不如MySQL流行?|3306π

NineData

数据库 postgresql 开源 叶正盛 NineData

离散性行业介绍及与MES系统的好处

万界星空科技

MES系统 产品资讯

Spring 条件注解没生效?咋回事

江南一点雨

Java spring

文本智能的未来发展方向

百度开发者中心

AIGC #人工智能 生成式AI 文心一言

S0001-大环境介绍

远观钱途

对线面试官 - 绝无仅有真实线上问题排查面试题突击篇

派大星

Java 面试题

“价值交付课程”11月4-5日 · CSPO认证周末班【提前报名特惠】CST导师亲授

ShineScrum捷行

这一次,大模型颠覆广告行业!

Openlab_cosmoplat

人工智能 大模型

WiFi Scanner for Mac(Wifi无线网络扫描管理软件) v3.1完美激活版

mac

苹果mac Windows软件 wifi scanner 无线网络扫描管理软件

DevSecOps 中的漏洞管理(下)

禅道项目管理

DevOps 漏洞

人工智能新范式,创新驱动生产力

百度开发者中心

#人工智能 ChatGPT 文心一言

Serialbox for Mac(序列号查询工具) v2023.09永久激活版

mac

windows 苹果mac Serialbox 序列号查询软件

冰火两重天——GTLC有感

IT民工大叔

个人成长 GTLC 技术领导力

火山引擎DataLeap的数据血缘用例与设计概述

字节跳动数据平台

大数据 企业号9月PK榜

领域驱动设计(DDD):DDD落地问题和一些解决方法

付威

构建值得信赖的生成式AI应用

百度开发者中心

#人工智能 生成式AI 文心一言

室内LED全彩显示屏P3和P5有什么区别

Dylan

LED 全彩LED显示屏 led显示屏厂家 户内led显示屏

3天上手Ascend C编程丨通过Ascend C编程范式实现一个算子实例

华为云开发者联盟

人工智能 开发 华为云 华为云开发者联盟 企业号9月PK榜

基于 Flink CDC 高效构建入湖通道

Apache Flink

大数据 flink 实时计算

ARTS week4

Z.

ARTS 打卡计划 #ARTS 左耳朵耗子

极光笔记 | 推送服务数据中心选择:合规性与传输效率的双重考量

极光JIGUANG

当今怎么还沿用水晶头呢?

小齐写代码

数据通信网络之OSPFv3基础

timerring

数据通信网络

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