如何利用@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 相关文章推荐
Array.prototype.slice 使用扩展
Jun 09 Javascript
js操作textarea 常用方法总结
Dec 03 Javascript
基于jQuery+JSON的省市二三级联动效果
Jun 05 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
jQuery EasyUI Draggable拖动组件
Mar 01 Javascript
vue项目关闭eslint校验
Mar 21 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
vue中slot(插槽)的介绍与使用
Nov 12 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
Apr 10 Javascript
layui动态加载多表头的实例
Sep 05 Javascript
JS 创建对象的模式实例小结
Apr 28 Javascript
处理JavaScript值为undefined的7个小技巧
Jul 28 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 日期加减的类,很不错
2009/10/10 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
php的debug相关函数用法示例
2016/07/11 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
YII框架http缓存操作示例
2019/04/29 PHP
用javascript实现自定义标签
2007/05/08 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
jQuery示例收集
2010/11/05 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
Python lambda表达式用法实例分析
2018/12/25 Python
使用python实现简单五子棋游戏
2019/06/18 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
用canvas显示验证码的实现
2020/04/10 HTML / CSS
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
学生个人评语大全
2015/01/04 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS