如何利用@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 相关文章推荐
FormValid0.5版本发布,带ajax自定义验证例子
Aug 17 Javascript
用javascript来实现动画导航效果的代码
Dec 16 Javascript
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
JS中eval函数的使用示例
Jul 21 Javascript
文本框只能选择数据到文本框禁止手动输入
Nov 22 Javascript
网页实时显示服务器时间和javscript自运行时钟
Jun 09 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
javascript中局部变量和全局变量的区别详解
Feb 27 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
Apr 12 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 Javascript
JS中验证整数和小数的正则表达式
Oct 08 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
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
django做form表单的数据验证过程详解
2019/07/26 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
python logging日志模块原理及操作解析
2019/10/12 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
详解python的变量缓存机制
2021/01/24 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
外国语学院毕业生自荐信
2013/10/28 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
Jsonp劫持学习
2021/04/01 PHP
golang正则之命名分组方式
2021/04/25 Golang