(转)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的最常见方法是访 ...
随机推荐
- 自动化测试-4.selenium的xpath定位
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...
- Python多进程并发操作中进程池Pool的应用
Pool类 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量的时间.如果操作的对象数目不大时,还可以直接使用Process类动态的生成多个进程,十 ...
- 微信小程序富文本中的图片大小超出屏幕
这个问题我在小程序社区中提的,后来有个帮我回答了这个问题,我试了一下可以. 解决办法是过滤富文本内容,给图片标签添加一个样式,限制图片的最大宽度. replace(/\<img/gi, '& ...
- ELF文件加载与动态链接(一)
关于ELF文件的详细介绍,推荐阅读: ELF文件格式分析 —— 滕启明.ELF文件由ELF头部.程序头部表.节区头部表以及节区4部分组成. 通过objdump工具和readelf工具,可以观察ELF文 ...
- 【持续更新】 | OpenCV 学习笔记
本文地址:http://www.cnblogs.com/QingHuan/p/7365732.html,转载请注明出处 ######################################## ...
- Semantic Compositionality through Recursive Matrix-Vector Spaces-paper
Semantic Compositionality through Recursive Matrix-Vector Spaces 作者信息:Richard Socher Brody Huval Chr ...
- js数字自执行随机滚动
每三秒执行一次,若是需要触发执行,可添加一个单击事件.<!DOCTYPE HTML> <html> <head> <meta http-equiv=" ...
- yaf nginx 设置
#test1server { listen 80; listen [::]:80; root /vagrant_data/aaa/public; index index.html index.htm ...
- windows server 2008 R2之tomcat开机自启
方法一: 写一个批处理文件autostartup.bat用来启动tomcat,内容如下.复制时不要把复制内容也复制进去 set CATALINA_HOME=C:\apache-tomcat-8.5.3 ...
- 【转】Entity Framework 复杂类型
为了说明什么是复杂属性,先举一个例子. public class CompanyAddress { public int ID { get; set; } public string CompanyN ...