Nuxt之PWA(Progressive Web App)渐进式网页应用

2020-03-03 21:33:36

参考地址 Nuxt之PWA(Progressive Web App)渐进式网页应用

📦 PWA

介绍

简介就不用说了哈,想知道更多更详细的请自行百度或Google。谢谢!/捂脸 /捂脸 /捂脸

使用

在Nuxt.js中做PWA不分单页面和多页面,都能使用。

1.安装@nuxtjs/pwa

yarn add @nuxtjs/pwa

2.需要在你的 nuxt.config.js 中添加以下配置:

manifest: {
    name: "BuyBit",
    short_name: "币买",
    description: "全球最具影响力的矿机算力交易平台,全球首创矿机算力交易平台,全球首家矿机算力交易平台,全球最好最优质的数字货币交易交易平台",
    background_color: "#2baf88",
    theme_color: "#2baf88",
    lang: "zh",
    start_url: "/"
  },
  render: {
    http2: {
      push: true
    },
    static: {
      maxAge: "1y",
      setHeaders(res, path) {
        if (path.includes("sw.js")) {
          res.setHeader("Cache-Control", `public, max-age=${15 * 60}`);
        }
      }
    }
  },// resourceHints 提升页面加载性能与体验
  render: {
    resourceHints: false
  },modules: ["@nuxtjs/pwa"]

3.在根目录下添加now.json文件

  {
  "version": 2,//版本号
  "alias": "www.homwang.com",//域名
  "builds": [{
    "src": "nuxt.config.js",//打包的配置文件
    "use": "@nuxtjs/now-builder"//打包使用的包
  }],
  "routes": [{
      "src": "/_nuxt/.+",//打包后你的项目地址
      "headers": {
        "Cache-Control": "max-age=31557600"//设置时间,则在过期之前不会重复访问
      }
    },
    {
      "src": "/(.*)",//没有特殊要求就使用该默认配置
      "dest": "/"//没有特殊要求就使用该默认配置
    }
  ]}

4.在静态static目录中添加icon.png图片文件(512 X 512)

5.打包部署流程走一遍到线上,就ok了

6.PWA展示效果


image.png

然后就可以点击+号安装应用并且下载到你到电脑桌面上了,如下:

image.png


桌面显示如下:


image.png

因为我在不同的环境下装了各自装了一个,所以我这里会有两个,后面的这个是刚刚安装下来的

结尾

在使用js开发的时候我们都想做到夸平台的访问应用,PWA的好处就是这样,在网页浏览器的同时也可以下载应用到自己的电脑桌面上,下次就可以不用直接在打开网页输入网页了,就可以直接在本地点击应用打开。这样确实很方便呢快捷。

注意事项

如果你的地址访问不安全,因为安全策略的问题不会有添加应用图标如下:


  • 2020-03-13 19:58:19

    推荐Android两种屏幕适配方案

    在Android开发中,由于Android碎片化严重,屏幕分辨率千奇百怪,而想要在各种分辨率的设备上显示基本一致的效果,适配成本越来越高。虽然Android官方提供了dp单位来适配,但其在各种奇怪分辨率下表现却不尽如人意,因此下面探索一种简单且低侵入的适配方式。本文将推荐两种屏幕适配方案,大家可以根据实际情况使用。

  • 2020-03-14 16:35:00

    nuxt.js部署全过程(ubuntu+nginx+node+pm2)

    系统的话本篇是Ubuntu 16.04.6 ,centos也行,大同小异都是Linux。不过如果你是初学者,最好和我使用一样的,因为因为发行版本不同而导致的差异可能导致运行某些东西失败,找问题要找好久。windows server不推荐了,企业用的多,小服务器跑windows server比较费劲。

  • 2020-03-14 23:15:25

    icomoon使用详细介绍

    此篇博文讲述如何利用icomoon导入图标,从而把自己想要的都通过icomoon方式进行,大家都知道,网站以及移动端,用图标还是尽量选择这种。因为直接用image有些图标会失真,从而也是前端开发之中,需求去掌握的一项,很简单的就几个步骤。

  • 2020-03-14 23:39:59

    vuetify和@nuxt/vuetify icon 之我见

    vuetify中v-icon,貌似默认支持 Material Design Icons, Material Icons, Font Awesome 4 and Font Awesome 5, 我自己单独引入了vuetify 用哪一个图标都没有问题。但是用了@nuxt/vuetify只能用mdi-home这样的。不知道因为啥。肯定是封装后,封装成一个了。 但是我修改vuetify的设置,哪一个图标也都能用。哎,不过多研究了。

  • 2020-03-16 15:57:53

    nuxtjs中单独引入Message组件的问题

    // 引入elementUIimport { Message } from 'element-ui';//由于Message组件并没有install 方法供Vue来操作的,是直接返回的,因此按照官方文档单独引入的方法是//会报错的,需要给 Message 添加 install 方法Message.install = function (Vue, options) {Vue.prototype.$message = Message}Vue.use(Message )//消息提示

  • 2020-03-16 16:03:20

    css的var()函数

     随着sass,less预编译的流行,css也随即推出了变量定义var函数。var()函数,就如同sass和less等预编译软件一样,可以定义变量并且进行对应的使用。