Vue3 PWA 如何配置

本文介绍了什么是PWA,并详细展示了如何在Vue3项目中配置PWA,包括设置manifest、图标以及在iOS设备上的表现。通过配置vue.config.js文件,可以实现自定义应用名称、主题色以及图标等,使应用具备更好的离线和桌面应用体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vue3 PWA 如何配置

一、什么是 PWA

在看如何配置之前需要先知道什么是 PWA

具体参阅: https://www.vuemastery.com/blog/getting-started-with-pwas-and-vue3/
看完就会了

pwa 需要网站是在 https 协议下的,不然不管用,像 serviceWorker 什么的都不能用了就。

vue pwa 官方配置说明 https://cli.vuejs.org/core-plugins/pwa.html#configuration

二、Vue3 配置 PWA

我的配置是这样的:

PWA 的配置是在 vue.config.js 中设置的,在 pwa 属性下

/**
   * PWA 设置
   */
  pwa: {
    name: '日记', // 名字
    themeColor: "#373737", // 背景颜色
    appleMobileWebAppCapable: true, // 苹果WebApp支持

    // manifest 设置
    manifestOptions: {
      name: '标题日记',
      short_name: "日记",
      theme_color: "#373737",
      start_url: ".",
      display: "standalone",
      background_color: "#000000"
    },

    // 图标
    iconPaths: {
      faviconSVG: 'src/assets/img/logo.svg',
      favicon32: 'src/assets/img/favicon.png',
      favicon16: 'src/assets/img/favicon.png',
      appleTouchIcon: 'src/assets/img/appicon-apple.png',
      maskIcon: '',
      msTileImage: ''
    }
  }

在iOS中浏览器中打开,并添加到主屏幕的时候,就像下面这样,自动填充上名字和图标

在这里插入图片描述

Vue3 中的 PWA (Progressive Web App) 推送功能通常通过服务 workers 和 Push API 实现。服务 worker 是浏览器的一种离线缓存技术,可以在用户离开网页后继续接收消息并发送通知。以下是实现步骤: 1. **注册 Service Worker**: 首先,在 Vue 应用的 `background.js` 或相关文件中注册 service worker,监听 `install` 和 `fetch` 事件。 ```javascript self.addEventListener('install', function(event) { event.waitUntil( caches.open('myCache').then(function(cache) { return cache.addAll(['index.html', 'manifest.json', ...]); }) ); }); self.addEventListener('fetch', function(event) { event.respondWith( caches.match(event.request).then(function(response) { // 如果缓存中有响应,则返回;否则从网络获取 return response || fetch(event.request); }) ); }); ``` 2. **配置 manifest 文件**: 创建一个 `manifest.json` 文件,包含 app 的基本信息、图标等,并指定允许推送的元数据。 ```json { "name": "My Vue App", "short_name": "MyApp", "description": "A Progressive Web App powered by Vue3", "icons": [...], "permissions": ["push"], "background": { "scripts": ["background.js"] } } ``` 3. **启用 Push Notifications**: 使用 JavaScript API `navigator.serviceWorker.ready` 确保 worker 已注册后,向用户请求推送权限。 ```javascript if ('serviceWorker' in navigator) { navigator.serviceWorker.ready.then(registration => { registration.showNotification('Hello from PWA'); if (Notification.permission === 'granted') { // 用户已授予许可,创建 push subscription createPushSubscription(); } else { // 弹窗询问用户是否接受推送 } }); } function createPushSubscription() { // 使用 PushManager 和 PushSubscription API // 示例:https://developer.mozilla.org/en-US/docs/Web/API/PushManager/prompt } ``` 4. **后端处理**: 后端需要设置 uplink 并启用 Cloud Messaging (FCM/GCM),以便发送推送消息。 完成以上步骤后,当有新的消息时,PWA 将能展示通知并提供给用户点击打开应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月ooOO

许个愿,我帮你实现

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值