离线优先方法和PWA的区别是什么?

4

在搜索我的疑惑时,我没有找到令人满意的资源。

所以我一直在寻找的问题是,离线优先的移动应用和PWA之间的区别是什么。

就我理解而言,任何移动应用程序,比如使用redux、SQLITE或realm的react-native应用程序都可以制作为离线优先的应用程序。而对于PWA来说,服务工作者(我对此知识较少)处理所有离线用户交互,并在最后确认网络连接性时按照PWA的要求获取或检索数据。

虽然我没有提及PWAs可以执行的其他功能(再次声明我对此知识较少)。即使现代浏览器只支持PWAs,为什么PWAs在当今趋势中引起了轰动?

请纠正我的问题中任何错误。非常感谢任何关于回答我的问题的信息、知识或链接。


你可能想要阅读这篇文章 :) 链接 - VilleKoo
感谢@Villekoo提供的链接,这解决了有关PWA的问题,但我还有一些疑问,即如果推送通知来自服务器,而且没有网络连接,如何实现推送通知?如果在使用PWA时缓存的智能数据与离线优先移动应用程序发送到服务器(数据库)的数据相同,那么它是否也会被发送到服务器? - Raeygzz
2个回答

2
您可以阅读这篇关于PWA系列文章的第一篇,以了解有关PWA功能及其优势的更多细节。
这两个概念并不是相互排斥的。PWA通过缓存目标资源或数据响应来实现/提供离线优先的方法,这得益于Service Worker和缓存策略。但您也可以使用其他技术来提供离线优先的方法,而不引入PWA。
PWA之所以备受瞩目,是因为我们可以为Web应用程序增加许多额外的功能,使其行为和外观类似于本机解决方案。想想看,只需极少的努力,前端团队就可以开发出一个几乎完全是本机应用程序的Web应用程序。而且,这样做无需雇用专门的本机团队(iOS / Android)。
然而,PWA并不是所有场景的万能药。它们仍然存在某些限制,只有本机应用程序才能提供(例如SMS功能和访问设备联系人),即使有不同的API旨在解决这些差距,如Google Contact Picker API

感谢@Francesco的回答。它确实帮了我很大的忙。 - Raeygzz
很高兴它有用。如果回答了你的问题,你应该将其标记为已回答 :) - Francesco

2
大多数主要应用程序直到最近都针对具有良好互联网连接的国家。随着发展中国家互联网接入率的飙升,大部分未开发市场正在浮出水面。尽管这些地区现在可以访问互联网,但是连接问题很多。因此,为了给这种新客户提供最佳体验,我们需要能够离线运行的应用程序。

enter image description here



离线优先方法:
这种方法主要适用于任何可以离线运行直到连接可靠的设备。对于开发人员来说,这意味着构建通过数据库、缓存或任何其他本地存储方法存储信息的能力。然后,当用户打开应用程序(桌面/移动)时,这些功能尽可能正常地运行。只需向用户提示它与最新版本不同步即可。
因此,离线优先方法可以是:
1. 具有离线功能的Android本机应用程序 2. 具有离线功能的IOS应用程序 3. 具有离线支持的依赖互联网的桌面应用程序 4. 具有离线功能的WebApp:PWA是最新技术

enter image description here



PWA(渐进式 Web 应用程序):PWA 是一种具有离线运行能力的 Web 应用程序。由于许多用户使用低成本设备(内存不足、处理能力低),因此安装新的原生应用程序的人数必然会减少。此外,很难说服人们下载和安装新应用程序。

enter image description here

这里讲的是Web应用可以成为改变游戏规则的因素。具有本地体验和离线功能的渐进式Web应用程序可以吸引更多用户尝试新的产品。此外,不需要强制用户安装另一个应用程序,只需提供链接即可轻松营销。
渐进式Web应用程序是离线优先方法的子集。随着浏览器增加了访问本机功能(如Francesco所指出的联系人)的能力,PWA可能是发布任何新功能的现代应用程序开发的第一步。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接