渐进式 Web 应用程序 (PWA):综合指南

2025-05-28

渐进式 Web 应用程序 (PWA):综合指南

您是否知道使用 HTML、CSS、JavaScript 或任何前端框架构建的 Web 应用程序可以安装并离线工作以提供增强的用户体验?

本文将向初学者以及任何希望提升前端开发技能的人介绍渐进式 Web 应用。在本文中,你将学习:

先决条件:要完全理解本文,需要具备 HTML 和 CSS 的基本知识。

什么是渐进式 Web 应用程序?

渐进式 Web 应用 (PWA) 是一种融合了传统网站和原生移动应用最佳功能的 Web 应用。PWA 旨在提供快速、可靠且引人入胜的 Web 体验,提供类似原生应用的 Web 体验。

为什么要使用渐进式 Web 应用程序?

PWA 的好处包括但不限于:

  • 改进的性能: PWAs 加载速度更快,性能更好,可以增强用户体验和参与度。

  • 离线功能:借助服务工作者,PWAs 可以缓存网页内容并在离线或网络状况较差的情况下运行。

  • 提高参与度:推送通知和主屏幕安装,无需前往应用商店即可提高用户参与度和体验。

  • 搜索引擎优化 (SEO) 友好: PWAs 可被搜索引擎发现,从而提高可见性和覆盖面。

  • 安全:通过 HTTPS 提供服务,以防止窥探并确保内容未被篡改。

渐进式 Web 应用示例

许多大公司,例如YouTubeFacebook,甚至Dev.to,都将其 Web 应用打造为可安装的。如果使用移动浏览器,请点击右上角的三个点,然后点击“安装或添加到主屏幕”。如果使用桌面浏览器,请点击浏览器右上角的“安装”图标,如下图所示。

Youtube 登陆页面截图

如何让你的 Web 应用可安装

无论您使用纯 HTML、React、Vue 还是其他任何前端框架构建,让渐进式 Web 应用可安装的步骤都是相同的。
本 PWA 教程将带您完成所有步骤。

步骤 1:设置您的项目。

HTML




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>PWA tutorial</title>
</head>
<body>
    <section class="main">
        <h1>Recipe App</h1>
        <p>The best culinary treats</p>
        <button>Explore</button>
    </section>
</body>
</html>


Enter fullscreen mode Exit fullscreen mode

CSS



body{
    background-color: aliceblue;
}
.main{
    margin: 0 auto;
    background-color: cadetblue;
    text-align: center;
    padding: 3rem;
}

h1{
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
    color: #fff;
    font-size: 3rem;
}
button{
    padding: 1rem 2rem;
    color: darkcyan;
    border:#fff;
    background-color: #fff;
}
p{
    color: #fff;
    font-size: 1.6rem
}



Enter fullscreen mode Exit fullscreen mode

输出

pwa代码的输出

步骤 2:创建“Manifest.json”文件。此步骤使应用程序可安装。以下详细信息将用于创建应用程序的启动画面。



{
    "name": "Recipe Application",
    "short_name": "My Recipes",
    "description": "A recipe application for creating awesome recipes",
    "start_url": "/",
    "theme_color": "#000000",
    "background_color": "#ffffff",
    "display": "standalone",
    "icons": [
        {   "src": "./icon.png",
            "sizes": "192x192",
            "type": "image/png"
        }]
  }


Enter fullscreen mode Exit fullscreen mode

步骤 3-将此清单文件链接到您的 HTML。



    <link rel="manifest" href="manifest.json"/>  


Enter fullscreen mode Exit fullscreen mode

瞧!你的应用可以安装了!

PWA 的输出

启动画面
这是访问应用程序时显示的第一个屏幕。

PWA 应用的启动画面

在渐进式 Web 应用中实现离线功能

渐进式 Web 应用中的离线功能增强了用户体验。它确保用户无论是否连接互联网都能流畅地使用应用。这可以通过 Service Worker、后台同步、缓存等方式实现。

当网络连接不可用时,服务工作线程 (SW) 会拦截网络请求并从缓存中获取响应。离线
状态下,您可以手动编写服务工作线程代码,也可以使用 Workbox、PWA Builder Online、PWA Studio 等工具。
本教程将使用 Google 旗下的Workbox库,因为它提供了预缓存、后台同步、推送通知、易用性等全面的功能。

如何集成 Workbox 以实现离线功能

步骤 1:在命令行中安装 Workbox。
使用“npx”可确保始终安装最新版本。如果您使用 React.js 构建,请在此步骤之前运行“npm run build”以生成构建文件夹(包含可部署的静态文件)。

npx 工作箱向导

步骤 2:如下图所示,回答 Workbox 向导中的问题提示。
对于 React.js 项目,build文件夹应作为应用程序的根目录。

PWA 工作箱

步骤 3:生成 Service Worker 文件

npx 工作箱生成 SW 工作箱配置.js
PWA 的服务工作者

步骤 4:将此脚本代码粘贴到您的 index.js 文件中,以注册 SW。确保它已链接到您的 HTML 文档。



if('serviceWorker' in navigator){
    window.addEventListener('load', () =>{
      navigator.serviceWorker.register('/sw.js')
    })
  }


Enter fullscreen mode Exit fullscreen mode

步骤 5:部署
服务工作线程需要 https:// 以确保安全性。将项目部署到NetlifyVercel。在浏览器中查看 Web 应用。

PWA部署

如何分析 Web 应用程序性能、可访问性和 SEO

Chrome Lighthouse是进行此类分析的强大工具。分析 Web 性能、可访问性和 SEO 对于构建提供卓越用户体验的高质量 Web 应用至关重要。
执行此分析的步骤如下:

  • 右键单击您的网页打开 Chrome 开发工具。

  • 单击“检查”,然后导航至“Lighthouse”选项卡

  • 根据偏好,在选项卡上单击“移动设备”或“桌面”

  • 生成报告

灯塔报告 PWA 截图

  • 查看灯塔分数

PWA 性能优化的最佳实践

  • 预加载 URL 和字体可能会减慢 PWA 的加载过程。

  • 实现延迟加载以推迟加载图像等资产,直到需要它们为止。

  • 确保干净的代码架构

  • 删除不需要的代码和空格,以提高 PWA 的整体性能。

总之,

PWA 是提供类似原生应用体验的 Web 应用。从离线功能到安装提示,从后台同步到推送通知,功能不胜枚举。
构建渐进式 Web 应用是一项有趣且充满挑战的壮举,但只要不断练习并注重细节,就能达到最佳的用户满意度。

感谢您的阅读。点赞并关注,获取更多网页开发和技术相关文章。请我喝杯咖啡来支持我的工作。

文章来源:https://dev.to/udoka033/progressive-web-apps-pwa-a-compressive-guide-57ii
PREV
如何使用 CSS 实现暗/亮模式。
NEXT
为什么选择 React Hooks?