时间:2021-05-28
什么是PWA
PWA(Progressive Web App)利用TLS,webapp manifests和service workers使应用程序能够安装并离线使用。 换句话说,PWA就像手机上的原生应用程序,但它是使用诸如HTML5,JavaScript和CSS3之类的网络技术构建的。 如果构建正确,PWA与原生应用程序无法区分。
PWA 的主要特点包括下面三点:
PWA 本身强调渐进式,并不要求一次性达到安全、性能和体验上的所有要求,开发者可以通过 PWA Checklist 查看现有的特征。
创建项目
Step 1.创建项目
我们使用Angular CLI来创建PWA程序,首先我们安装。
npm install -g @angular/clinpm install -g @angular/service-worker首先我们需要确定angular/cli版本在1.6.0或以上。
最新版本6.0.0将无效,应该后续会修复。
.angular-cli.json文件被更名为angular.json
如果是全新项目
可以使用angular/cli帮你创建一个Angular Service Worker项目:
ng new PWCat --service-worker就这样,cli会帮你安装@angular/service-worker,在.angular-cli.json中启用serviceWorker,为app注册serviceWorker和生成默认配置的ngsw-config.json。
生成的文件中,注意检查一下app.module,ts,其中serviceWorkerModule注册的时候应该是这样:
imports: [ // other modules... ServiceWorkerModule.register('/ngsw-worker.js', {enabled: environment.production}) ],在Angular 6.0.0中ng new PWCat --service-worker已经被废弃,使用下面的命令为项目添加pwa
ng add @angular/pwa执行后的结果
CREATE ngsw-config.json (392 bytes)
UPDATE angular.json (3464 bytes)
UPDATE package.json (1446 bytes)
UPDATE src/app/app.module.ts (851 bytes)
如果是已有项目
对于老版本,也就是Angular 6.0.0以前:
安装@angular/service-worker:
npm install @angular/service-worker --save在项目目录下面新增ngsw-config.json文件:
// src/ngsw-config.json{ "index": "/index.html", "assetGroups": [{ "name": "app", "installMode": "prefetch", "resources": { "files": [ "/favicon.ico", "/index.html" ], "versionedFiles": [ "/*.bundle.css", "/*.bundle.js", "/*.chunk.js" ] } }, { "name": "assets", "installMode": "lazy", "updateMode": "prefetch", "resources": { "files": [ "/assets/**" ] } }]}在.angular-cli.json中启用service worker:
// .angular-cli.json...{ "apps": [{ ..., "serviceWorker": true }]}然后在app.module.ts中注册Service Worker :
// src/app.module.ts...import { ServiceWorkerModule } from '@angular/service-worker';import { environment } from '../environments/environment';@NgModule({ ... imports: [ ... , ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production }) ],})...这样项目中就引入Service Worker。
对于新版本6.0.0
使用下面命令创建。
ng add @angular/pwa将会创建:
- manifest
- service worker
Step 2. 添加Angular Material模块
安装material和cdk
安装主题
安装normalize.css,作用是优化html样式
然后在 styles.css中添加:
@import '~normalize.css/normalize.css';@import '~@angular/material/prebuilt-themes/deeppurple-amber.css';添加Material Module
修改app.component.ts和app.component.html
Step 3.创建一个图片模块
生成模块
将其添加到app.module.ts
// src/app/app.module.ts...import { AppComponent } from './app.component';import { ImgCardComponent } from './img-card/img-card.component';@NgModule({ declarations: [ AppComponent, ImgCardComponent ], ...将img-card模块添加到app.component.html中:
修改app.module.ts
修改img-card.component.ts
添加一个全局的CatImage类
修改ImgCardComponent
修改img-card.component.html
修改img-card.component.css
Step 4.离线状态
修改ImgCardComponent
修改`img-card.component.html
然后构建部署:
ng build --prod部署
由于https的限制,我们暂时部署到github上。
创建Github仓库
上传项目
git add .git commit -m "Upload project to github"git remote add origin git@github.com:{username}/{repo name}.gitgit push --set-upstream origin master编译
PWCat是仓库名称
新建github pages分支
部署到github
然后在github项目的settings里面GitHub Pages选项里设置GitHub Pages 分支为gh-pages
此时就可以使用网址https://93alliance.github.io/PWCat/访问了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这里给大家分享一则input指令的使用示例复制代码代码如下:无标题文档查看varapp=angular.module('Demo',[],angular.noo
demo这是整个示例demo1、filter.js文件angular.module("exampleApp",[]).constant("productsUrl
Android中ThreadLocal使用示例概要:Demo描述:ThreadLocal使用示例.关于ThreadLocal的官方文档描述Implementsa
刚了解了下Angular.js,发现Angular.js绑定数据方面非常方便,套下教程demo:名字:你输入了:{{name}}我就想着,使用jq/js怎么实现
本文介绍了SpringMVC简单整合Angular2的示例,分享给大家,具体如下:angular使用的是官方的快速开始的例子将文件全部拷贝到springmvc的