一、前言

  现在市面上的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. SpringCloud的DataRest(四)restful特性展示

    一.get - list - http://10.110.20.16:8391/BusiSys/company?page=0&size=5&sort=comp_id,asc 二.pos ...

  2. python 模拟浏览器登陆coursera

    import requests import random import string def randomString(length): return ''.join(random.choice(s ...

  3. 写给 Android 应用工程师的 Binder 原理剖析

    写给 Android 应用工程师的 Binder 原理剖析 一. 前言 这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔.生怕自己理解上还有偏差,对大家造成误解,贻笑大方.又怕自己理 ...

  4. nexus私服服务器意外关机后,本地不能下载jar包

    主要记录一个小问题. 今天要做个需求,需要读取word文档中的表格来在生成数据库建表语句. 读取word文档,要添加maven依赖 <dependency> <groupId> ...

  5. 剑指offer-二叉树的下一个节点

    题目描述   给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针.   解题思路 分情况考虑如下: 若该节点为空,则直 ...

  6. scrapy-redis使用以及剖析

    scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能: scheduler - 调度器 dupefilter - URL去重 ...

  7. css常见属性

    css常见属性 1.颜色属性 1.1 color属性定义文本的颜色 1.2 color:green 1.3 color:#ff6600 可简写为#f60 1.4 color:rgb(255,255,2 ...

  8. JSON定义

    如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如xml,但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过 ...

  9. 织云Lite发布:详解包管理核心能力

    本文由 织云平台团队 发布于 腾讯云云+社区 织云Lite发布 腾讯织云自动化运维体系经过10年技术积淀,维护近万个业务模块,超过20万节点.鉴于业界朋友的呼声,我们将织云的核心功能独立抽象出来,凝结 ...

  10. spring源码阅读(1)bean解析

    public class Test { public static void main(String[] args) throws Exception { BeanFactory beanFactor ...