如何利用@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 相关文章推荐
用cssText批量修改样式
Aug 29 Javascript
javascript 类定义的4种方法
Sep 12 Javascript
Function.prototype.call.apply结合用法分析示例
Jul 03 Javascript
js中继承的几种用法总结(apply,call,prototype)
Dec 26 Javascript
js+div实现图片滚动效果代码
Feb 10 Javascript
jQuery解析XML 详解及方法总结
Sep 28 Javascript
用jQuery实现可输入多选下拉组合框实例代码
Jan 18 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
Apr 20 Javascript
小程序云开发初探(小结)
Oct 24 Javascript
详细分析Node.js 多进程
Jun 22 Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 Javascript
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
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生成静态页
2006/11/25 PHP
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
vuex的简单使用教程
2018/02/02 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
python程序输出无内容的解决方式
2020/04/09 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
中海讯通笔试题
2015/09/15 面试题
办理信用卡工作证明
2014/01/11 职场文书
公司员工活动策划方案
2014/08/20 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
个人简历求职信范文
2015/03/20 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫
MySQL数据库事务的四大特性
2022/04/20 MySQL