如何利用@angular/cli V6.0直接开发PWA应用详解


Posted in Javascript onMay 06, 2018

什么是PWA

PWA(Progressive Web App)利用TLS,webapp manifests和service workers使应用程序能够安装并离线使用。 换句话说,PWA就像手机上的原生应用程序,但它是使用诸如HTML5,JavaScript和CSS3之类的网络技术构建的。 如果构建正确,PWA与原生应用程序无法区分。

PWA 的主要特点包括下面三点:

  • 可靠 - 即使在不稳定的网络环境下,也能瞬间加载并展现
  • 体验 - 快速响应,并且有平滑的动画响应用户的操作
  • 粘性 - 像设备上的原生应用,具有沉浸式的用户体验,用户可以添加到桌面

PWA 本身强调渐进式,并不要求一次性达到安全、性能和体验上的所有要求,开发者可以通过 PWA Checklist 查看现有的特征。

Angular正式发布了V6.0,我们已经可以利用对应的@angular/cli V6.0来直接开发PWA应用了。下面话不多说了,来一起看看详细的介绍吧。

第一步:安装@angular/cli V6.0

如果你机器上有老版本,请先卸载。

打开你的终端,执行:

npm install -g @angular/cli

安装成功之后用ng -v 查看一下版本号:

如何利用@angular/cli V6.0直接开发PWA应用详解

第二步:new一个空项目

执行:

ng new test-ng-pwa

创建成功之后把项目起来看一下,执行:

ng serve --open

浏览器里面看到这个界面说明一切OK:

如何利用@angular/cli V6.0直接开发PWA应用详解

第三步:添加PWA支持

把项目停掉,然后在终端里面执行:

ng add @angular/pwa

效果如下:

如何利用@angular/cli V6.0直接开发PWA应用详解

因为@angular/cli内置的Server在--prod 编译的时候还不支持service-worker,所以上面装了一个第三方的lite-server,它的官方文档在这里:https://npmjs.com/package/lite-server ,请执行:

npm install lite-server --save-dev
npm install lite-server --global

装完之后,执行:

npx ng build --prod && lite-server --baseDir dist/test-ng-pwa

然后打开你的浏览器访问3000端口,可以看到service-worker已经起成功了:

如何利用@angular/cli V6.0直接开发PWA应用详解

如何利用@angular/cli V6.0直接开发PWA应用详解

这时候你已经可以把应用添加到桌面上了:

如何利用@angular/cli V6.0直接开发PWA应用详解

这是Windows上的效果:

如何利用@angular/cli V6.0直接开发PWA应用详解

Linux、iOS、Android、ChromeOS最新的版本都已经全部支持,你自己去试试吧!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Input 特殊事件onpopertychange和oninput
Jun 17 Javascript
Jquery cookie操作代码
Mar 14 Javascript
jQuery.getScript加载同域JS的代码
Feb 13 Javascript
Javascript处理DOM元素事件实现代码
May 23 Javascript
jQuery不使用插件及swf实现无刷新文件上传
Dec 08 Javascript
Javascript的闭包详解
Dec 26 Javascript
浅谈javascript获取元素transform参数
Jul 24 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
Jan 04 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
Apr 29 Javascript
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
JavaScript实现队列结构过程
Dec 06 Javascript
Less 安装及基本用法
May 05 #Javascript
es6新特性之 class 基本用法解析
May 05 #Javascript
JS同步、异步、延迟加载的方法
May 05 #Javascript
JavaScript生成指定范围随机数和随机序列的方法
May 05 #Javascript
JS文件中加载jquery.js的实例代码
May 05 #jQuery
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
May 05 #Javascript
js动态引入的四种方法
May 05 #Javascript
You might like
动态生成gif格式的图像要注意?
2006/10/09 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
Ext grid 添加右击菜单
2009/11/26 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
纯javascript版日历控件
2016/11/24 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
使用Python制作一个打字训练小工具
2019/10/01 Python
Python进程池Pool应用实例分析
2019/11/27 Python
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
村委会贫困证明
2014/01/14 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
北京英文导游词
2015/02/12 职场文书
党支部意见范文
2015/06/02 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
golang使用map实现去除重复数组
2022/04/14 Golang