发布时间:2021年3月
PWAVaadin与微软和谷歌等主要技术公司一起,多年来一直倡导进步的网络应用。
最后更新时间为2021年3月30日。
在过去的几个月里,PWA生态系统发生了很多变化。出于这个原因,我们决定发布这个 "渐进式网络应用状态 "的帖子,这将使我们能够跟踪和汇编该领域的主要发展,并帮助您决定PWA是否适合您的业务。
从本质上讲,PWA融合了Web应用的简单发布模式,以及本地应用的功能、性能和用户体验,允许企业开发、维护和添加功能到一个几乎可以在任何平台上运行的代码库。
如果你有兴趣了解更多,我们有很多关于PWA的精彩资料。
- PWA手册: PWA介绍。
- 渐进式网络应用的商业案例。
- 将Vaadin应用程序转换为PWA。
- 网络的未来。高管指南
随着PWA环境的变化,本博文将定期更新。
谷歌和微软合作,进一步推进PWA
两家渐进式网络应用最有力的支持者已经联手为开发者提供了一种新的、事实上的应用商店包装PWA的方式。PWA的一个核心承诺是通过网络浏览器进行无摩擦的访问和分发,然而,应用商店包装对某些类型的应用确实有其用途,因为这种分发方式提供了增强的操作系统访问能力,以及更大的货币化机会。两家公司都推崇在Windows 10操作系统上轻松安装和卸载PWA。
微软的PWAuilder(顺便说一下,它的PWA启动项目使用了Vaadin路由器)允许开发者轻松地为应用商店打包PWA。谷歌的Bubblewrap工具也可以为谷歌Play商店做同样的事情。
根据微软的Judah Gabriel Himango最近在Medium上发表的一篇文章,PWAbuilder现在将在引擎盖下使用谷歌Chrome实验室的Bubblewrap。这次合作还将为使用PWAuilder构建的PWA带来几项值得欢迎的改进,包括。
- 支持标准快捷方式,允许PWA访问与操作系统深度集成的应用快捷方式(例如,Windows任务栏或Android的主屏幕)。
- 自定义Android包的生成,使开发者能够编辑诸如启动器名称、闪屏颜色、导航条颜色和图标URL等,就像原生Android应用程序一样。
你可以在这篇博文中阅读更多关于PWABuilder以及它如何与Vaadin一起工作的信息。
苹果中的蠕虫
与其他科技巨头相比,苹果选择在其iOS和iPad OS平台上限制PWA的功能。
在这次对PWA的最新打击中,苹果拒绝在Safari中实施16个新引入的Web API,理由是它们有可能实现更大的广告主指纹识别。
这意味着,要想成功地将PWA部署到iOS或iPad OS上,需要将其包装成一个本地应用,并通过苹果的应用商店发布。这就为开发者增加了一个额外的步骤。此外,所有提交到苹果应用商店的应用程序必须遵守通常对PWA不友好的特定准则,包括应用程序必须能够在设备上完全运行(而不是将其大部分功能放在网络上)。
在这个阶段,将PWA转换为iOS或iPad OS应用的最佳方法是使用微软的PWA生成器,它可以为你的PWA生成一个完整的XCode包(前提是你有一个Mac来运行XCode)。
这比构建一个纯粹的原生应用程序还是更有优势的,因为应用程序的大部分代码库可以在分发到其他平台的纯PWA和封装版本之间共享。
虽然Mac App Store也不太可能在近期看到PWA,但通过谷歌Chrome和微软Edge Chromium,还是可以在Mac上轻松安装和使用PWA。
不过,我们从苹果最新的iOS 14更新中看到了一些关于PWA未来的好消息,它增加了对Service Worker等技术的支持,并允许iPhone用户设置不同于Safari的默认浏览器。
火狐背对开放网络
在一个奇怪的转折中,Mozilla Firefox,通常是开放网络的倡导者,决定不在他们的桌面浏览器上追求对可安装网络应用的支持。安卓版本的浏览器继续支持这项技术。
PWA可以说是应用商店绑定应用的最佳选择,因此Mozilla最近的声明在开放网络社区引起了轰动。
Mozilla表示,他们的做法只是一个优先级的问题。他们表示,他们将把精力集中在其他功能上,没有计划为其桌面浏览器启用可安装的网络应用。这一变化使Mozilla落后于PWA倡导者、微软,当然还有谷歌的浏览器。
这可能会对Web应用在其平台上的覆盖面造成伤害,例如气象频道报告说,当从传统的Web应用迁移到PWA时,活动增加了60%。
开放式与封闭式网络
苹果iOS移动操作系统中包含的Safari浏览器和Mozilla火狐浏览器似乎已经选择退出PWA功能,转而考虑安全问题。更多关于这种偏离的细节肯定会很快出现。然而,人气是站在PWA的一边,因为谷歌Chrome浏览器和Windows 10的标准浏览器Edge占据了主要的市场份额。
各平台对 PWA 的分布和支持情况
所以,这就引出了一个问题。在今天的环境下,我的企业值得建立一个公共事业管理局吗?答案是,绝大多数情况下是值得的......。
为了帮助您更好地了解PWA是否适合您的项目,我们汇编了一份关于各种广泛使用的平台支持PWA的最新信息列表。
Android上的渐进式网络应用
安卓系统是目前最适合安装程序员的平台。目前,安卓系统上可以通过多种方式安装视听设备。
基于浏览器在安卓系统上安装视听设备
-
这可能是最常见的(也是最方便的)安装PWA的方式。
-
所有主流的浏览器,包括Google Chrome、Android Webview、Mozilla Firefox、Brave、Opera和Microsoft Edge,都支持安装PWA。 某些其他由硬件和服务厂商提供的浏览器,如三星互联网,也支持PWA。
-
Mozilla的 "大改版 "Firefox for Android浏览器的测试版本最近增加了对PWA安装的支持,从Firefox Preview 5.0和Beta 76开始。 这些浏览器是Mozilla对经典Firefox浏览器进行现代化改造的一部分,为Android设备带来更高的性能和更低的资源占用率。需要注意的是,与Chrome浏览器不同,Firefox只是将这些PWA添加为 "主屏幕快捷方式"。
-
除谷歌浏览器和三星互联网外,上述浏览器均采用a2hs(添加到主屏幕)的安装方式,本质上是在主屏幕上添加了一个通往应用的图标,但不会在系统层面注册应用。
-
谷歌浏览器和三星互联网支持最近推出的 "WebAPK "安装方法,该方法创建了一个本地 "包装 "应用程序,并在系统级别注册应用程序。这样做的另一个好处是可以让应用出现在应用架上(而不仅仅是主屏幕),并允许用户在Android设置中管理存储、通知和其他设置。
通过基于Android的应用商店分发PWA
- 进阶网络应用可以提升为 "可信网络活动"(TWA),并从Google Play商店内安装。
- TWA本质上是在Chrome自定义标签(CCT)的一个特殊实例中运行,与典型的Web视图相比,它能提供更多的功能,如推送通知、后台同步和媒体源扩展(MSE)。
- 虽然PWA的核心承诺是浏览器提供的发布便利性,但在某些用例中,TWA确实提供了额外的好处,例如与平台的深度集成、主屏幕小部件以及与Wear OS或Android Auto的集成。
- 三星表示,在Galaxy Store中,将可以使用WebAPK(而不是TWA)安装PWA。三星收到的反馈似乎表明,相比TWA,开发者更喜欢这种安装模式。
安卓系统上PWA的企业分发
- 谷歌允许企业通过EMM(企业移动管理)控制台使用托管的Play iframes(依靠WebAPK minting服务)向员工安全地发布PWA。
- 这使得企业IT管理员可以发布仅在其员工的Play Store实例中可用的私有应用程序。
Windows上的渐进式网络应用
- 微软已经全力以赴地在Windows 10和10X上推动进步的网络应用。这得益于微软Edge被转移到Chromium上。
- 微软发布了他们新的基于Chromium Edge的PWA平台的预览版。在PWA倡导者Justin Willis的博客上阅读更多内容。
- 在Build 2020上,微软宣布,作为开源项目Project Fugu(微软是其中的一部分)的一部分,一系列旨在弥合原生和渐进式网络应用之间差距的改进将进入Windows。这些改进包括
- 将PWA设置为文件类型、URL和协议的默认值。
- 本地文件系统访问(直接写入)。
- 能够在操作系统登录时运行。
- 改进的原生通知(在图标上添加显示相关信息的徽章)。
- 应用程序的快捷方式。
- 这些功能开始与Edge 86一起运输,目前许多功能在Canary频道中可用。
在Microsoft Windows中基于浏览器的PWA安装
- 目前,可以通过Windows 10、Windows 8和Windows 7的浏览器安装PWA。
- 它们可以使用谷歌浏览器和Microsoft Edge(仅基于Chromium)安装。
- 谷歌Chrome浏览器和Microsoft Edge(Chromium)很快就会加入主流支持,在启动时运行PWA。目前,这两个浏览器的Canary频道中都有这个功能。
- Mozilla Firefox正在努力增加PWA安装支持(目前在Nightly频道中可用),但没有具体的发布日期,Mozilla似乎首先在Android版Firefox上优先考虑PWA支持。
- 微软Edge(Chromium)和谷歌Chrome允许任何网站(即使是那些不按照PWA规范构建的网站)被安装为PWA。
Windows应用商店中的PWA
- Windows 10 的 Microsoft Store 支持 PWA。此外,PWA 可以作为 XBox One 应用程序通过 Microsoft Store 提供。
- 虽然可以选择手动提交,但如果满足某些标准,Bing 爬虫可以自动索引您的 PWA 并将其添加到 Microsoft 商店。
iOS和iPad操作系统上的渐进式网络应用程序
- iOS不支持通过苹果的应用商店安装PWA。
- 从Safari 11开始可以安装PWA。
- iOS或iPad OS上的其他浏览器不能安装PWA(iOS上的所有第三方浏览器都使用WebKit引擎,因为苹果的应用商店不允许第三方浏览器引擎)。
- 如上所述,在iOS和iPad OS设备上提供高质量的PWA体验是一个挑战,因为苹果最近以广告商 "指纹 "引起的隐私问题为由,拒绝实施几个主要的Web API。
macOS上的渐进式网络应用
- 苹果不支持通过其应用商店安装PWA。批评者称,这是由于PWA能够规避臭名昭著的 "苹果税",要求开发者将其应用收入的相当大的比例上交苹果。
在macOS上安装基于浏览器的PWA
- 在macOS上仍然可以使用谷歌浏览器和微软Edge(Chromium)基于浏览器安装PWA。
- Google Chrome浏览器将很快允许在macOS上启动PWA。在Canary频道的构建中已经有了这个标志。
- 目前还不能使用苹果的Safari、Opera或微软的Firefox安装PWA。
ChromeOS上的渐进式网络应用
- ChromeOS现在允许使用Play Store安装渐进式网络应用(与Android应用一起)。
- 渐进式网络应用程序现在在ChromeOS上发挥着相当于Android应用的本地公民的功能。用户很快就能选择在启动时启动PWA。
- Youtube TV和Twitter是今年早些时候登陆Play Store的两个大名鼎鼎的功能区。现在,它们已经成为任何使用ChromeOS的用户在Play Store上的默认选项。谷歌似乎将PWA视为在ChromeOS上运行Android应用的一个性能更强、用户更友好的选择。
- 在ChromeOS上也可以基于浏览器安装PWAs(从ChromeOS 67开始)。
Linux上的渐进式网络应用
- 可以在Linux上使用Google Chrome浏览器安装PWA,从72版本开始。PWA 可以在启动时使用 Google Chrome 浏览器启动。该功能目前正在开发中,并通过Chrome的Canary构建的标志提供。
- 微软Edge Chromium很快就会进入Linux系统,并且很可能也会支持PWA安装功能。
PWA在游戏玩家中的崛起
亚马逊Luna宣布
亚马逊宣布其新的云游戏服务Luna,将扩展其Prime视频订阅模式。用户可以申请提前使用该服务,并在Fire TV、PC、Mac和iOS平台上使用新的低延迟游戏手柄。安卓系统的支持正在开发中,应该很快就会推出。更值得关注的是,该服务以PWA的形式运行,绕过了苹果的App Store及其30%的微交易安装佣金。
Epic Games在苹果上咬一口。
不过,亚马逊并不是唯一抗议App Store的游戏平台。游戏巨头Epic Games开发了《Fortnite》等游戏,以及用于大量游戏的虚幻引擎,已经就iOS设备上的苹果独家支付问题向苹果提起民事诉讼。
Facebook进军游戏(再次)
用户在Facebook上玩基于浏览器的游戏已有多年。为了成为第一个基于广告的云游戏网络,Facebook最近宣布,在他们即将推出的平台上将会有几款免费的手机游戏。根据游戏设计老手Jason Rubin的说法,以PWA的形式提供游戏是实现这一目标的一个可能的解决方案。就像Epic Games一样,他们在向苹果施压,要求其遵守规定,而不是适应PWAs对游戏的限制。
Chromebook上的游戏
谷歌的云游戏机Stadia,已经慢慢但肯定地进入了谷歌的游戏机市场。Stadia平台可以作为PWA安装在Chrome上,将其Chromebook变成有效的游戏机。谷歌已经报告说,在过去的几个月里,Stadia游戏的引入使Chromebook上安装的游戏数量增加了三倍。
渐进式网络应用和Vaadin公司
将使用Vaadin 14+构建的Web应用程序转换为PWA很容易,只需要在应用程序的根布局中添加@PWA注释。服务器就会自动为PWA提供所需的资源。在没有互联网连接的情况下,使用Java组件API构建的应用程序默认为可定制的 "离线屏幕"。
Vaadin还支持在PWA中使用基于TypeScript的客户端视图构建离线体验。您可以在同一个Vaadin应用程序中同时使用基于Java和基于TypeScript的视图,这意味着您可以在现有的Vaadin应用程序中添加可离线的视图。
Vaadin Fusion为PWA带来了离线功能。
我们最新的功能发布,Vaadin 19,为您的基于TypeScript的Vaadin应用程序带来了离线功能。它的工作原理是将数据保存在本地,然后在重新建立连接后与服务器同步。在Marcus Hellberg的视频中学习如何使用Fusion,或者通过我们新的深度教程学习Fusion的操作。
不确定哪个Vaadin版本最适合你?请阅读我们对Vaadin Flow和Fusion的介绍,了解一下吧。
在Vaadin中构建PWA并将其发布到主要应用商店的新系列指南。
我们还为PWA开发过程的每一步提供教程。我们全面的《使用Spring Boot和Vaadin的现代网络应用》电子书解释了如何从头到尾构建一个全功能的PWA。
此外,我们还有丰富的内容帮助您将PWA部署到所有主要的云托管提供商和应用商店。
- 云部署系列教程,提供了将任何Vaadin应用程序(包括PWA)部署到您所选择的云提供商的逐步说明。该系列目前涵盖AWS、Azure云、Google云、Heroku云、IBM云和Oracle云。
- 应用商店提交教程,以PWA生成器和Bubblewrap CLI为特色,包括苹果应用商店、微软商店和谷歌Play商店的说明。
通过www.DeepL.com/Translator(免费版)翻译