1.
之前在公司要求实现:在离线时,应用程序能够继续运行功能,现在简单写个DEMO来演示
我们将网络状态改为“离线”,然后刷新页面,会显示“未连接到互联网”
接下来演示如何使用PWA
2.
首先添加 Workbox, 下载依赖
cnpm install workbox-webpack-plugin --save-dev
3.
配置webpack
//引入workbox
const WorkboxPlugin = require('workbox-webpack-plugin');
//配置plugins
new WorkboxPlugin.GenerateSW({
clientsClaim: true,
skipWaiting: true,
}),
4.
在main.js中注册Service Worker
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js').then(registration => {
console.log('SW registered: ', registration);
}).catch(registrationError => {
console.log('SW registration failed: ', registrationError);
});
});
}
5.
npm run build 打包测试,可以看到dist文件夹下生成了service-worker.js文件,我们运行下打包后的index.html文件
是因为我们的service-worker文件是在dist文件夹下,而他加载的地址直接是根目录下
6.
使用serve部署静态资源服务器,让我们运行的根目录就是dist目录
7.
全局安装serve
cnpm i serve -g
8. 启动开发服务器,
serve dist
9.查看终端窗口
10. 直接访问localhost:3000,查看控制台
注册成功
11. 测试
改为离线状态下,刷新页面,查看能否正常运行,是否会出现“未连接到互联网”情况
正常运行