(转)PWA(Progressive Web App)渐进式Web应用程序
-
PWA
编辑 讨论
https://baike.baidu.com/item/PWA/22378897?fr=aladdin
http://tech.it168.com/a2017/1113/3179/000003179550.shtml
3分钟告诉你什么是渐进式Web应用程序!
【IT168 评论】随着移动设备使用的大幅增长,建立一款适合移动设备的商业网站至关重要。根据Statista最新的一项研究显示,截止到2019年,手机互联网用户渗透率将达到63.4%。显然,如何在移动开发技术领域取得重大的突破成为了移动开发人员当前面临的最大挑战。
想象一下,如果一个网站上所有的功能都能够作为一个移动应用程序为用户所用——任何设备上都可以使用、可接收所有的通知、离线模式可用,为了实现这个愿景,2015年,谷歌创造了渐进式Web应用程序(PWA)。什么是PWA?使用PWA对企业有哪些好处?
什么是PWA?

PWA是指可以在任何浏览器上执行的支持互联网的应用程序,它是由服务器端脚本(PHP和ASP)和客户端脚本(JavaScript和HTML)组成的。
PWA具有成本效益,可以使公司轻松管理各种任务。此外,web应用程序安全性更高,易于定制,可用于各种设备。例如,PWA可以对员工工作时间进行跟踪,分享远程团队之间的信息,监控公司活动等。一般来讲,简单的应用程序通常都需要根据特定的系统要求进行配置,但是web应用程序始终可用。
Web应用程序在任何工作平台上都兼容。应用最广泛的例子就是在线电子表格Google Docs)、电子邮件(Gmail)、照片和视频编辑(Pixlr.com)等,这些程序允许用户同时访问相同版本的文档。
渐进+ Web应用程序优势
有无服务人员是PWAs和常规web应用程序的主要区别。服务人员是PWA背后强大的技术支撑,在服务人员的帮助下,可实现离线模式工作,接收推送消息,更新背景内容等。PWA的目的旨在实现多个平台通用应用程序。
Google的PWA概念是将网络和原生应用的最佳组合结合起来的新形式。原生应用程序和Web应用程序之间的另一个区别是访问能力。原生应用可以使用推送通知,后台同步等。相比之下,网络被认为是更安全、更尊重隐私,但目前在这些方面还有欠缺。如果能够实现这些功能,就能在用户体验方面做到更加的完美。
简单易安装也是Web应用程序与原生应用程序相比的一大优点。此外,开发人员不需要将PWA适配到iOS或Android平台上,由于使用网络技术,PWA可跨平台工作。
缺点
·PWA不支持所有浏览器,其中包括Safari。到目前为止,这是一个很大的缺点,几乎50%的移动浏览器被Safari覆盖。但这并不意味着PWA在这些浏览器中不起作用。PWA在Safari中工作时,只是没有推送通知和离线模式等功能。
·有些功能在PWA中仍不可用,包括:应用程序间通信、地理围栏、近场通信、接近传感器等。
企业该选择原生应用程序还是Web应用程序?

对于希望为其客户构建一个易于访问的移动体验的企业来讲,PWA是一个完整的解决方案。
但无论选择原生应用程序还是web应用程序完全取决于公司的目标。如果业务需求简单,预算较小、且希望容易分配,PWA是不错的选择。但如果应用程序有很多功能,且需要由iOS支持,预算也相对较大,那企业可以选择原生应用程序。
(转)PWA(Progressive Web App)渐进式Web应用程序的更多相关文章
- Progressive Web App
下一代 Web 应用? 近年来,Web 应用在整个软件与互联网行业承载的责任越来越重,软件复杂度和维护成本越来越高,Web 技术,尤其是 Web 客户端技术,迎来了爆发式的发展. 包括但不限于基于 N ...
- 试着给VuePress添加渐进式Web应用(PWA)支持,基于vuepress/plugin-pwa,点亮离线访问
背景 有时候,我们也希望VuePress构建的文档中心能支持离线访问,这时候我们需要给他添加渐进式Web应用(PWA,Progressive Web App)的支持,根据官方文档指引,我们可以借助插件 ...
- 关于渐进式 Web 应用,你应该知道的一切
渐进式 Web 应用是利用现代浏览器的特性,可以添加到主屏幕上,表现得像原生应用程序一样的 Web 应用程序. 什么是渐进式 Web 应用 渐进式 Web 应用(PWA)本质上与普通的网站没有什么不同 ...
- 渐进式Web应用程序的深入概述
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://www.grapecity.com.cn/blogs/wijmo-depth-ove ...
- html5文章 -- 使用 jQuery Mobile 与 HTML5 开发 Web App ——开发原则 | Kayo's Melody
最近专注研究 jQuery Mobile —— 一款很方便就可以把 Web App 包装成适合 Android 与 iPhone 等触屏移动设备的 Javascript 库,结合 jQuery Mob ...
- web app变革之rem
rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...
- web app变革之rem(手机屏幕实现全适配)
以往web移动适配,常规写法是:media only screen @media only screen and (min-device-width: 320px){ //针对iPhone 3 } @ ...
- Outlook Web App简介
一.什么是Outlook Web AppOutlook Web Access简称OWA是基于微软Hosted Exchange技术的托管邮局的一项Web访问功能.通过访问Outlook Web Acc ...
- web app 变革之rem
rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...
- Native App、Web App 还是Hybrid App?
一.什么是Native App? Native App即原生应用,即我们一般所称的客户端,是针对不同手机系统单独开发的本地应用,如需使用需要先下载到手机并安装,下载Native App的最常见方法是访 ...
随机推荐
- Day 1: ASP.NET and JavaScript Jan.16th Trying
ASP.NET has its own named controls(tags) corresponding to that in an HTML document, such as <asp: ...
- Dubbo的Filter实战--整合Oval校验框架
前言: 其实很早之前就想写一篇关于oval和具体服务相整合的常见做法, 并以此作为一篇笔记. 趁现在项目中间空闲期, 刚好对dubbo的filter有一些了解. 因此想结合两者, 写一下既结合校验框架 ...
- C与指针练习题4.14.1
//C与指针练习题4.14.1 //ai+1=(ai+n/ai)/2公式逼近,当ai+1=ai时,取得n的平方根 #include<stdio.h> float sq_root(float ...
- python 多协程异步IO爬取网页加速3倍。
from urllib import request import gevent,time from gevent import monkey#该模块让当前程序所有io操作单独标记,进行异步操作. m ...
- Tomcat报异常:Too many open files 的解决之路
http://www.linuxeye.com/Linux/2781.html Tomcat报 Jul 21, 2015 8:45:23 AM org.apache.tomcat.util.net.J ...
- SpringAOP 注解方式
Spring-service-mvc.xml <context:component-scan base-package="com.restful.controller,com.rest ...
- MyBatis举例以及连接数据库过程
第一:创建实体类 package entity; public class Emp { private int empno; private String ename; private String ...
- JAVA面向对象设计中类关系
现在看以前描述有点小问题:类之间关系分为继承.泛化.依赖.关联.聚合.聚合关系几种.继承是is a关系,泛化(类实现接口)表示like a关系. 类之间的关系种类: Generalization(泛化 ...
- 第一章 HTML+CSS(上)
HTML 网页的组成 HTML简介 HTML的语法 HTML的常用标签 HTML中的表格和表单 CSS的简单应用 我们这里使用WebStorm开发工具 配置浏览器 常用插件: CodeGlance 代 ...
- TreeSet的两种排序方式,含Comparable、Comparator
1.排序的引入 由于TreeSet可以实现对元素按照某种规则进行排序,例如下面的例子 public class TreeSetDemo { public static void main(String ...