一、前言

  现在市面上的Native  APP成千上万个,各种应用商店里面的APP琳琅满目。原生的APP下载到手机上之后,用户就可以获取一个方便的入口,体验上也十分顺畅。但是再好的事物难免有点缺点:

1、开发成本高,一般同时安卓和ios两个版本;

2、版本迭代、打包、上传、过审这一些的步骤拉长了开发周期,有时候还有面临别被下架的风险;

3、不利于SEO;

  相对于原生APP,web网页开发开发周期快,没有过审之类的烦恼,也更加利于SEO,当时也存在很明显的不足:

1、只能借助浏览器访问,没有桌面快捷入口;

2、不具备离线能力,offline就GG了;

3、不能主动给用户推送消息;

4、硬件权限的缺失;

  有什么实现方案可以取其上两种方法的精华?微信小程序?PWA?

二、什么是PWA?

      PWA全称Progressive Web App,是Google在移动时代力推的一个提升webapp性能和体验解决方案,是一种渐进式WEB应用。PWA应用,可以通过 Web 技术编写出一个网页应用.,随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能;

1、可添加webapp到桌面,无需下载,提供方便的入口;

2、可以离线储存,offline也不怕;

3、实现消息推送,方便用户回流;

4、持续更新,无版本更新迭代问题;

5、只能通过 HTTPS 协议提供服务,防止窥探和确保内容不被篡改;

三、核心技术

       Web App Manifest

  Service Worker

  App Shell

  Push Notification

  Fetch API

  Service Workers 只是后台运行的 worker 脚本。它们是用 JavaScript 编写的,它们便可使开发者能够拦截网络请求,处理推送消息并执行许多其他任务;

其他核心功能具体实现可以看《PWA-BOOK》!

四、后话

1、PWA的优势开头已经讲了,目前各大厂商虽没有明确的支持pwa,但是它还是有很多可以使用的点;

2、上次在腾讯web前端大会上听企鹅电竞PWA实践,收获颇多。

3、新技术的诞生是要经过时间的筛选,好的技术将会被不断更新,沉淀,最后更好的服务大家。

参考:

1、《PWA-BOOK》!

2、腾讯web前端大会TFC2017 PPT

链接:https://pan.baidu.com/s/1GB4r9fAqrHA9o-o2RwUzRg

密码:h45t

PWA初体验的更多相关文章

  1. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  2. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  3. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

  4. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  5. 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...

  6. 【Knockout.js 学习体验之旅】(1)ko初体验

    前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...

  7. 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验

    在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...

  8. 百度EChart3初体验

    由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详 ...

  9. Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

    Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...

随机推荐

  1. 大数据学习总结(4)参考splunk架构

  2. 新概念英语(1-31)Where's Sally?

    新概念英语(1-31)Where's Sally? Is the cat climbing the tree ? A:Where is Sally, Jack ? B:She is in the ga ...

  3. Java8新特性第3章(Stream API)

    Stream作为Java8的新特性之一,他与Java IO包中的InputStream和OutputStream完全不是一个概念.Java8中的Stream是对集合功能的一种增强,主要用于对集合对象进 ...

  4. vue.js+socket.io+express+mongodb打造在线聊天[二]

    vue.js+socket.io+express+mongodb打造在线聊天[二] 在线地址观看 http://www.chenleiming.com github地址 https://github. ...

  5. jscript定时器,一直用的东西,你真的明白吗?

    JavaScript定时器 JavaScript是一种解释型语言(边编译边执行),Js解析顺序是从上到下,然后将编译后的任务丢到一个事件队列中,然后事件内的函数会从上到下开始执行 setInterva ...

  6. 如何在命令行中让python2和python3同存

    初学python,你可能同时安装了python2和3.在我们安装好python之后,我们会面临这样一个问题,在命令行输入"python",可能会出错,或者只能调用其中一个版本,py ...

  7. Apache设置用户权限(2个域名。一个能访问全部文件,一个只能访问指定文件)

    可以利用apache的虚拟主机的配置设置: 2个域名一个是xxxxx.com ,一个是aaaaa.com xxxxx.com配置只访问jpg文件,aaaaa.com可以访问所有文件 <Virtu ...

  8. python基础—函数嵌套与闭包

    python基础-函数嵌套与闭包 1.名称空间与作用域 1 名称空间分为: 1 内置名称空间   内置在解释器中的名称 2 全局名称空间   顶头写的名称 3 局部名称空间 2 找一个名称的查找顺序: ...

  9. spark2.1操作json(save/read)

    建筑物配置信息: case class BuildingConfig(buildingid: String, building_height: Long, gridcount: Long, gis_d ...

  10. Django(博客系统):文章内容使用django-ckeditor、文章简介使用django-tinymce

    文章内容使用django-ckeditor 1)安装django-ckeditor pip install django-ckeditorpip install Pillow 2)在settings. ...