正确使用PWA

article/2025/9/21 6:33:36

作为一个前端程序员,在没有任何Android/IOS的开发情况下,想想我们有多少种方法来开发一个原生移动应用程序!我们可以有非原生、混合开发,PWA等等手段。类似uniapp,Reactive native为我们提供了更简便的手段!抛开这些框架,我们该如何仅使用 HTML、CSS 和 Javascript 来开发一个多平台的标准移动程序!这就是本文要介绍的渐进式WEB应用程序(PWA)!

PWA

PWA(Progressive Web Apps,渐进式 Web 应用)运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序。这些应用无处不在、功能丰富,使其具有与原生应用相同的用户体验优势.
​ --MDN

通俗的说:PWA是风格类似移动应用程序的网站!它可以运行在浏览器中也可以直接安装在移动设备上!

PWA必须包含下面三个关键内容!

1: Service Worker:它运行在一个与页面JavaScript主线程的独立线程上。它提供了离线功能,允许用户从网站下载和缓存设备上的文件。
2: Web Manifest:实现了将PWA网页应用 添加至桌面的功。具体的配置文件manifest.json通常放在应用的根目录,包含类似应用标题、移动设备上的图标等安装信息!但该项技术目前仍处于实验性阶段,各浏览器支持度不高!
3: HTTPS:HTTP是PWA强制要求的,用来保证程序的安全性!

优点

1: 跨平台可用,可以安装和运行在跨各种系统各种设备上!
2: 无需下载,我们只需要访问网址,添加到桌面即可!这样就不需要第三方商店的审核!
3: 不需要开发Android和IOS两套代码!

劣势

1:浏览器支持存在差异,并不是所有浏览器都完美支持!
2:调用底层硬件比原生麻烦。
3:分发效果差,因为PWA不通过应用商店,这导致你的应用无法在应用商店展示搜索!

开发

项目以及目录

index.html
index.js
manifest.json
sw.js

index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>测试PWA</title></title><link rel="manifest" href="manifest.json" /></head><body><header><h1>测试</h1></h1><form id="todo-form"><input type="text"  placeholder="请输入 " /><button >提交</button></form></header><main><h2>测试</h2> </main> 
</body>
<script src="index.js"></script>
</html>

配置manifest.json

MDN : https://developer.mozilla.org/zh-CN/docs/Web/Progressive_web_apps/Installable_PWAs

  • name: 网站应用的全名。
  • short_name: 显示在主屏上的短名字。
  • description: 一两句话解释你的应用的用途。
  • icons: 一串图标信息:源 URL,大小和类型。多包含几个图标,这样就能选中一个最适合用户设备的。
  • start_url: 启动应用时打开的主页。
  • display: 应用的显示方式;可以是 fullscreenstandaloneminimal-ui 或者 browser
  • theme_color: UI 主颜色,由操作系统使用。
  • background_color: 背景色,用于安装和显示启动画面时。
{"name": "Todo PWA","short_name": "ToDo","icons": [{"src": "./logo.png","sizes": "100x100","type": "image/png"},{"src":  "./logo.png","sizes": "150x150","type": "image/png"},{"src": "./logo.png","sizes": "250x250","type": "image/png"}],"theme_color": "#FFFFFF","background_color": "#FFFFFF","start_url": "/","display": "standalone"
}

最后我们还需要在index.html引入

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

注册 Service Worker

上面我们提供了安装所需的配置文件,但是仅仅也支持配置了,我们想要可以安装,还必须注册 Service Worker。

一个注册好的 Service Worker,可以让应用离线工作(这仅对于安卓设备上的 Chrome 浏览器是必需的)

我们在sw.js中来添加service worker的事件,然后再index.js中注册。

详细的设置,请参考:developer.mozilla.org/zh-CN/docs/…

  1. install 事件一般是被用来填充你的浏览器的离线缓存能力。这里我们将文件加入到缓存中!
  2. fetch自定义请求,每次任何被 service worker 控制的资源被请求到时,都会触发 fetch 事件,这些资源包括了指定的 scope 内的文档,和这些文档内引用的其他任何资源(比如 index.html 发起了一个跨域的请求来嵌入一个图片,这个也会通过 service worker 。)
const todo = "todo";
const assets = ["/","./index.html", "./index.js","./logo.png",
];self.addEventListener("install", installEvent => {installEvent.waitUntil(caches.open(todo).then(cache => {cache.addAll(assets);}));
});self.addEventListener("fetch", fetchEvent => {fetchEvent.respondWith(caches.match(fetchEvent.request).then(res => {return res || fetch(fetchEvent.request);}));
});

index.js注册:

window.onload = ()=>{ if ("serviceWorker" in navigator) {navigator.serviceWorker.register("./sw.js").then(res => console.log("注册serviceWorker:成功")).catch(err => console.log("注册serviceWorker:失败", err));}
};

安装

打开PC Chrome浏览器,我们会发现在上方搜素框右边出现了一个下载按钮,如果你已经安装过了,则会编程一个箭头。至此我们已经成功的完成了PWA的开发,发布,安装!

在这里插入图片描述
参考链接: https://juejin.cn/post/7111130193808490510#heading-4


http://chatgpt.dhexx.cn/article/sMTcEA8J.shtml

相关文章

PWA应用入个门

文章目录 什么是PWA应用核心技术清单如何添加PWA应用到手机苹果手机:安卓手机: PWA应用VS微信小程序参考资料 什么是PWA应用 PWA&#xff08;Progressive Web App&#xff09;是一种理念&#xff0c;使用多种技术来增强web app的功能&#xff0c;可以让网站的体验变得更好&…

什么是 PWA?有什么用?送三本《PWA入门与实践》!

很高兴受到《PWA入门与实践》作者王乐平老师的邀请&#xff0c;为这本书写推荐语。 下面我们就听听作者王老师带你快速玩转 PWA 吧&#xff01; 文末有给各位粉丝的福利&#xff01;抽奖送出三本《PWA入门与实践》。 导读&#xff1a;如今&#xff0c;互联网大流量早已进入了移…

关于PWA的各种问题

目录 前言 PWA的简单了解和需求 项目manifest.json和sw的无脑生成神器 安装 注册 动态配置manifest.json IOS无法获取webpack-pwa-manifest中配置的icon 来自因为需求而产生的静态manifest.json的坑 前言 — 以下结论和方法均为个人摸索&#xff0c;涵盖从度娘那儿找到…

PWA 概念及核心功能的基本介绍

目录 一. PWA 概念介绍 1.1 什么是 PWA&#xff1f; 1.2 为什么会出现 PWA&#xff1f; 1.3 如何判断一个 web 应用是 PWA&#xff1f; 二. PWA 核心功能 2.1 何谓 Service Worker 2.2 注册 Service Worker 2.3 Service Worker 常用事件 2.3.1 install 2.3.2 fetch 2.4 Manife…

PWA系列:第一章 PWA使用场景分析

前言 2018年4月份起微软的应用商店上线第一批PWA应用以来&#xff0c;近一年随着safari开始支持ServiceWorkers&#xff0c;国内浏览器厂商也逐步开始大力加持&#xff0c;到本课程发稿起95%以上的浏览器都支持了PWA的横幅安装。PWA轻应用也逐渐被广大站点使用和推广。 PWA轻应…

PWA(Progressive Web App)入门系列:(一)PWA简介

前言 PWA做为一门Google推出的WEB端的新技术&#xff0c;好处不言而喻&#xff0c;但目前对于相关方面的知识不是很丰富&#xff0c;这里我推出一下这方面的入门教程系列&#xff0c;提供PWA方面学习。 什么是PWA PWA全称Progressive Web App&#xff0c;直译是渐进式WEB应用…

一文读懂什么是 PWA?

什么是 PWA&#xff1f; 1. 概念2. 特性3. 功能4. 优势与劣势5. 发展 1. 概念 PWA 是 Google 于 2016 年提出的概念&#xff0c;于 2017 年正式落地&#xff0c;于 2018 年迎来重大突破&#xff0c;全球顶级的浏览器厂商&#xff0c;Google、Microsoft、Apple 已经全数宣布支持…

PWA(Progressive Web App)入门系列:(三)PWA关键技术Manifest

前言 前面说过&#xff0c;让Web App能够达到Native App外观体验的主要实现技术就是PWA中的manifest技术&#xff0c;本章会详细说明manifest的实现&#xff0c;及各个参数的具体含义&#xff0c;还将了解如何定义Web App的启动图标、启动样式等。 简介 manifest是一种简单的…

一文了解PWA——Progressive Web App

近年来&#xff0c;出现了一种新的应用开发模式——PWA&#xff08;Progressive Web App&#xff0c;即渐进式Web应用&#xff09;。今天就来为大家分享什么是PWA&#xff0c;以及它与小程序的区别、技术原理。 PWA的基本概念和技术原理 PWA是一种基于Web技术的应用开发模式&a…

PWA相关知识

http://www.leiphone.com/news/201606/UEiart497WUzS62u.html 我们真的需要网页版App吗&#xff1f;Google PWA的困局 其实回来的两周里&#xff0c;我对Progressive Web App&#xff08;以下简称 PWA&#xff09;的理解也在不断更新&#xff0c;现在是思考更为全面的时候。 一…

PWA介绍及快速上手搭建一个PWA应用

PWA初次体验 ​ 前言&#xff1a;本示例不用安装任何东西 部分资源来自网络资源及PWA官网&#xff0c;不要把PWA想象的太复杂&#xff0c;跟着示例走一下&#xff0c;你行的。 PWA介绍 一个新的前端技术&#xff0c;PWA&#xff08; 全称&#xff1a;Progressive Web App &…

PWA详解

PWA&#xff08;Progressive Web App&#xff0c;渐进式网页应用&#xff0c;逐渐接近原生app的web app&#xff09;是一种理念&#xff0c;使用多种技术来增强web app的功能&#xff0c;可以让网站的体验变得更好&#xff0c;能够模拟一些原生功能&#xff0c;比如通知推送。在…

PWA应用

一、什么是PWA应用 一个新的前端技术&#xff0c;PWA&#xff08; 全称&#xff1a;Progressive Web App &#xff09;也就是说这是个渐进式的网页应用程序。 官网&#xff1a;https://developers.google.com/web/progressive-web-apps/ 是 Google 在 2015 年提出&#xff0c;…

汽车金融风控企业如何开展风控体系建设

汽车融资租赁主要有直租和回租两种模式&#xff0c;相对回租业务而言&#xff0c;直租因更具盈利优势和用户体验优势而备受瞩目。2017年大搜车、易鑫、优信和瓜子等巨头纷纷涉足直租领域&#xff0c;厂家金融和经销商集团金融机构随后跟上&#xff0c;直租模式在国内开始呈现井…

重磅分享:一份关于车贷的政策性文件分享

关注公众号“番茄风控大数据”&#xff0c;获取更多数据分析与风控大数据的实用干货。 不同领域不同产品的策略跟政策要点肯定是不同的&#xff0c;对车贷而言因为有车这个标的物&#xff0c;车会移动会跑&#xff0c;为了应对这个相关的风险点&#xff0c;我们就会对标的物做跟…

线下产品风控门道真不少

关注 “番茄风控大数据”&#xff0c;获取更多数据分析与风控大数据的实用干货。 “你好&#xff0c;请问这里是肯蝶科技有限公司吗&#xff1f;请问这里&#xff0c;有没有一个叫小明的人在这里上班&#xff1f;” “您好&#xff01;对&#xff0c;这里是肯蝶科技有限公司。…

贷后风控中逾期案件差异化的分配逻辑

在风控精细化运营的当下&#xff0c;贷后工作的开展&#xff0c;越来越需要精细化管理。 今天我们总结梳理了番茄风控之前的内容并结合近期开展的内容&#xff0c;为大家带来一个催收模型优化和逾期案件催收差异化策略的内容&#xff0c;详细请看本文介绍。 一.催收模型 在催收…

GPS北斗定位模块应用实现汽车风控管理

车辆安装GPS北斗定位模块越发常见&#xff0c;无论是车主导航&#xff0c;还是车贷企业的追踪、交警交通的管理等&#xff0c;都是硬性需求和必备工具&#xff0c;在金融风控行业的作用也越来越明显了。 车辆作为资产的一种类型&#xff0c;对资产安全性、实时管控等的需求&am…

金融风控——Python建模

金融风控基础篇 风控的基本概念0 基于AI的风控应用1 什么是信用风险&#xff1f;2 信用模型和欺诈模型的区别3 小额现金贷 vs 大额信贷4 信用评分建模的基本流程5 和风控建模相关的问题有&#xff1a; 数据清洗的全过程什么是 ETL交叉验证的优势及实现方法 建立模型模型的评估方…

风控策略中如何制定差异化利率定价方案

风控策略中如何制定差异化利率定价方案 前言一、框架设计二、流程设计三、方案测算四、策略上线总结 前言 一个产品上线后&#xff0c;随着规模的扩大&#xff0c;基于风险收益的匹配原则&#xff0c;以及差异化营销的管理要求&#xff0c;除了授信额度策略之外&#xff0c;我…