龙空技术网

渐进式 Web 应用(PWA)真的来了?

未来架构 271

前言:

眼前兄弟们对“apachecordova推送”大概比较讲究,姐妹们都想要了解一些“apachecordova推送”的相关文章。那么小编也在网摘上搜集了一些有关“apachecordova推送””的相关资讯,希望朋友们能喜欢,大家一起来了解一下吧!

今天,我在mac,windows和IOS上面测试几款PWA的程序,目前表现的非常的流畅,下面是我测试的几款的程序的截图。

PWA 程序

其中Appscope是类似app store 的PWA的应用商店,收集了基本上所有的PWA。

那到底什么是PWA 呢?

简单来讲,渐进式Web应用(PWA,Progressive Web App)是一种利用特殊浏览器功能的Web应用程序,使该应用程序在具有功能的浏览器上运行时,其行为更像是原生或移动应用程序。

目前没有针对PWA的标准或标准机构; PWA只是一个以特定方式运行的Web应用程序。 根据需要在Web应用程序中使用尽可能多或者尽可能少的PWA功能。 您可以拥有使用某些PWA功能的web应用程序,也可以拥有一些PWA功能的PWA的程序。

开发人员主要使用大多数现代浏览器中可用的两种技术来构建PWA:Web应用程序清单文件(web app manifest files)和service workers。

PWA logo

首先,说一点点历史

Google和其他浏览器供应商一直在为其浏览器添加特殊功能,努力为开发人员提供更多可用于增强Web的工具。 根据Wikipedia的说法,2015年,名叫Frances Berriman的设计师和Google Chrome工程师名叫Alex Russell创造了渐进式Web应用程序一词,用以描述“利用现代浏览器支持的新功能(包括service worker和Web应用程序清单)的应用程序, 允许用户将Web应用程序升级到其本机操作系统(OS)中的渐进式Web应用程序。”当时,Chrome浏览器是支持此技术的浏览器,因此Google开始大力推广这种新的构建Web应用程序的方法。

PWA 功能和特点

1.PWA是可安装的:移动和桌面用户可以使用应用程序中提供的安装UI将它们快速安装在手机的主屏幕或桌面上。手机几乎总是能够将网站的URL复制到设备的主屏幕,但是安装该应用程序更好。

2.PWA在本地设备上缓存应用程序的核心UI,因此,当用户打开应用程序时,UI会快速加载,然后再尝试从网络中获取更新数据。因此,PWA比传统的Web应用程序更灵活。

3.PWA运行后台任务,从而实现资源缓存和后台处理。传统的Web应用程序无法做到这一点(虽然可以,但是它需要大量的手工代码或第三方库)。

4.PWA可以从后端服务器接收推送通知,无论该应用程序是否在运行。宣布推出iPhone时,他们以失败告终,因为他们以为开发人员很高兴能够只为平台构建Web应用程序。史蒂夫·乔布斯(Steve Jobs)和公司傲慢地认为浏览器就足够了,并且可以满足大多数应用程序的需求。开发人员社区迅速反抗,迫使苹果伸出援手,这就是我们获得在iOS上编写原生应用程序的能力的原因。他们之所以反叛,是因为即使Safari在iOS上非常强大,而且苹果提供了一些出色的开发人员工具(不,不是Xcode,有人记得Dashcode吗? ),有些应用程序开发人员无法在浏览器中完成这些操作。这些限制也是PhoneGap项目(后来成为Apache Cordova)的动机。该项目专门启动以支持跨平台的移动开发,并使浏览器开发人员能够访问当时本机浏览器中尚不可用的设备功能。其中许多功能都是通过开放标准将其导入浏览器的,这些标准涵盖了设备加速计,相机,指南针,麦克风等内容。浏览器应用程序变得越来越强大,但是使浏览器与原生移动应用程序具有同等地位的一些最终要求是-听起来应该很熟悉-能够在设备上安装Web应用程序,本地缓存代码和内容,运行后台任务(甚至(当应用未运行时),并接收推送通知。支持PWA的技术将这些最终所需的功能交付给浏览器;而且,有了这些功能,Web应用程序现在可以更像原生应用程序。

如何开发渐进式Web应用?

需要几种技术一起来开发PWA; 没有它们,Web应用程序就不能成为PWA。 这些技术是Web应用程序清单文件,service workers和超文本传输协议安全(HTTPS),或更准确地说是基于传输层安全性(TLS)的HTTP。 HTTPS可以确保客户端和服务器之间的安全通信,这不是本书中讨论的主题,只是稍后会描述大多数PWA功能都需要使用HTTPS并说明原因。 以下各章详细介绍了如何使用Web应用清单文件和服务工作者来构建PWA。 到目前为止,很高兴知道Web应用程序清单文件允许在运行该应用程序的本地系统上安装Web应用程序,并且service workers使其他PWA功能都可以实现。表1.1列出了中针对PWA映射的应用程序功能 使它们成为可能的技术。


PWA 功能(Capability)以及对应实现的技术

PWA 和 APP STORES

开发人员构建原生移动应用程序的原因有很多,但其中一个原因是,他们可以通过移动设备平台的公共应用程序商店分发其应用程序。虽然您可以通过在移动浏览器中打开Web应用程序来安装PWA,但移动平台供应商培训了他们的用户以在应用程序商店中查找应用程序。这意味着寻找您的应用的用户将首先在手机的应用商店中寻找它。在这个领域中,发生了一些有趣的事情。在2019年初,谷歌宣布了适用于Android的可信网络活动(TWA)。通过TWA,开发人员可以将PWA捆绑到适用于Android的本地移动应用程序中。 TWA本质上是Android应用程序中的无边框(无浏览器用户界面),全屏Chrome浏览器。有了它,您就可以在本地应用程序中将PWA与浏览器打包在一起,并且可以通过Google Play商店进行全新部署。Microsoft采用了另一种方法,于2018年中宣布开发人员可以将其PWA发布到Microsoft Store。如果他们没有将其应用发布到商店,则Microsoft仍会为他们完成应用(如果PWA符合特定条件)。

PWA 和国内的小程序

对于用户来说,PWA 应用最大的变化在于,改变了以往需要下载安装包、等待安装的过程,这类应用很好地体现了「用完即走」的理念,与传统安装应用相比,PWA 应用具备的优势是:无需安装、更轻量、不占用大量空间,只需要一款支持 PWA 应用的浏览器,就可以轻松添加 PWA 应用,具备了跨平台使用的特性。

而微信小程序这类应用,需要安装好微信本身这款应用的前提下,才能正常使用小程序,并且有些小程序会强制让用户关联微信帐号后方可使用应用。与其相比,PWA 应用在一定程度上展示更开放的一面,目前市面上大部分浏览器已经较好地支持 PWA 应用的标准,所以说在手机端或电脑端安装了浏览器,就能够轻松添加 PWA 应用。

PWA和浏览器

所有主要的浏览器都提供PWA技术。 从以下版本开始支持Service Worker。


浏览器版本号

PWA所需的关键要素是对Service Worker的支持。 值得庆幸的是,台式机和移动设备上的所有主流浏览器现在都支持Service Worker。

Web App Manifest,推送,通知和“添加到主屏幕”功能等其他功能也具有广泛的支持。 当前,Safari对Web App Manifest和“添加到主屏幕”的支持有限,并且不支持Web推送通知。 但是,其他主要浏览器都支持所有这些功能。

标签: #apachecordova推送