【chrome】谷歌浏览器地址栏右侧“安装”按钮实现

news2024/11/24 14:32:32

地址栏右侧“安装”按钮

这玩意学名叫PWA
全称:Progressive Web App,是提升 Web App 的体验的一种新方法,能给用户原生应用的体验。

一、PWA安装条件:

在 Chrome 中,渐进式 Web 应用程序必须满足以下条件才能触发 beforeinstallprompt 事件和显示浏览器内安装推广栏

  • 未安装 Web 应用程序
  • 符合用户参与启发式
  • 通过 HTTPS 提供服务
  • 具有一个 Web 应用清单,其中包括:
    • short_namename
    • icons - 必须包含一个 192 像素和一个 512 像素的图标
    • start_url
    • display - 必须是 fullscreenstandaloneminimal-ui
    • 不能有 prefer_related_applications,或值为 false
  • 使用 fetch 处理程序注册服务工作进程

二、实战

1. 新建manifest.json文件

在项目根目录创建manifest.json文件

{
  "short_name": "Weather",
  // 安装的PWA应用名称
  "name": "Weather: Do I need an umbrella?",
  // 安装的PWA应用描述
  "description": "Weather forecast information",
  "icons": [
  	// 不同icon资源调用方式
    {
      "src": "/images/icons-vector.svg",
      "type": "image/svg+xml", // 资源类型:image/svg+xml、image/png、image/png
      "sizes": "512x512" // 资源(图像)大小,得和实际的大小一致
    },
  ],
  "id": "/?source=pwa",
  "start_url": "/?source=pwa",
  "background_color": "#3367D6",
  "display": "standalone",
  "scope": "/",
  "theme_color": "#3367D6",
  "shortcuts": [
    {
      "name": "How's weather tomorrow?",
      "short_name": "Tomorrow",
      "description": "View weather information for tomorrow",
      "url": "/tomorrow?source=pwa",
      "icons": [{ "src": "/images/tomorrow.png", "sizes": "192x192" }]
    }
  ],
  "screenshots": [
    {
      "src": "/images/screenshot2.jpg",
      "type": "image/jpg",
      "sizes": "720x540",
      "form_factor": "wide"
    }
  ]
}

2. 新建一个demo.html文件

<!DOCTYPE html>
<html>
  <head>
  	<!-- 引入manifest.json -->
    <link rel="manifest" href="manifest.json" />
  </head>
  <body>
    <h1>Demo</h1>
  </body>
</html>

3. 启动HTTP服务测试效果

地址栏右侧“安装”按钮安装提示


参考资料:

  • 如何提供应用内安装体验
  • PWA安装条件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/765371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

session 生命周期和经典案例-防止非法进入管理页面

文章目录 session 生命周期和Session 经典案例-防止非法进入管理页面session 生命周期Session 生命周期-说明代码演示说明 Session 的生命周期创建CreateSession2创建ReadSession2 解读Session 的生命周期代码示例创建DeleteSession Session 经典案例-防止非法进入管理页面需求…

对接金蝶云星空,奥威软件SaaS BI能做的不止这一点

金蝶云星空提供了包括供应链管理、生产管理、销售与客户关系管理、人力资源管理、财务管理等功能&#xff0c;是一款基于云计算、大数据、人工智能等技术的商业智能软件服务。以云端数据可视化分析为主业的SaaS BI无一例外地提供了对接金蝶云星空数据源的路径&#xff0c;但接下…

你不能不知道的Word操作文本技巧!

在兽医诊所中&#xff0c;保持适宜的温湿度是非常重要的&#xff0c;因为动物的健康和舒适度受到环境条件的影响。 温度的控制对于动物的健康至关重要。过高或过低的温度可能会引起热应激或低体温等问题。适宜的温度范围有助于提供一个舒适的环境&#xff0c;促进动物的康复和治…

『CV学习笔记』ImportError: libGL.so.1和Dockerfile构建ubuntu18.04_miniconda_py37

ImportError: libGL.so.1: cannot open shared object file: No such file or directory 文章目录 一. opencv报错1.1. 解决办法11.2. 解决办法2二. Dockerfile文件(ubuntu18.04&miniconda_py37)一. opencv报错 容器报错内执行python程序报错ImportError: libGL.so.1: cann…

串口wifi6+蓝牙二合一系列模块选型参考和外围电路参考设计-WG236/WG237

针对物联网数据传输&#xff0c;智能控制等应用场景研发推出的高集成小尺寸串口WiFi串口蓝牙的二合一组合模块。WiFi符合802.11a/b/g/n无线标准&#xff0c;蓝牙支持低功耗蓝牙V4.2/V5.0 BLE/V2.1和EDR&#xff0c;WiFi部分的接口是UART&#xff0c;蓝牙部分是UART/PCM 接口。模…

又卡了,大数据平台容器化运维走起

文章目录 一、背景二、方案总结三、方案实施3.0 转移数据修改docker默认存储位置3.1 手动清理3.2 定时容器日志清理3.3 限制 Docker 容器日志大小 大家好&#xff0c;我是脚丫先生 (o^^o) 大数据基础平台的搭建&#xff0c;我采用的是全容器化Apache的大数据组件。 之前还很美…

基于协程和事件循环的c++网络库

完整资料进入【数字空间】查看——baidu搜索"writebug" 介绍 开发服务端程序的一个基本任务是处理并发连接&#xff0c;现在服务端网络编程处理并发连接主要有两种方式&#xff1a; 当“线程”很廉价时&#xff0c;一台机器上可以创建远高于CPU数目的“线程”。这时…

紧跟国家“新能源+”模式!涂鸦智慧能源方案助力夏季用电节能提效

“今天的你是几分熟&#xff1f;” 今年夏天&#xff0c;高温来得比往年更早&#xff0c;五六月份就提前开启了滚滚热浪模式&#xff0c;京津冀和山东等地最高气温也一度突破了历史极值。在提前到来的高温“烤”验下&#xff0c;全社会供电能力面临着极大挑战。 中国电力网预…

rce题目

<?php include "flag.php"; highlight_file(__FILE__); if(isset($_GET[HECTF])) { if (; preg_replace(/[^\W]\((?R)?\)/, NULL, $_GET[HECTF])) { if (!preg_match(/pos|high|op|na|info|dec|hex|oct|pi/i, $_GET[HECTF])) { eval(…

进阶C语言——字符串和内存函数

今天我们学点库函数 字符函数和字符串函数 求字符串长度函数->strlen strlen需要的头文件是string.h ,那它的作用是什么呢&#xff1f;&#xff1f; 他是来求字符串长度的&#xff0c;统计的是’\0’前的字符串长度 #include<stdio.h> #include<string.h> int …

office CVE-2022-30190 RCE 复现

简介: 当用户点击word等应用程序时&#xff0c;会使用URL协议调用MSDT,随即启动msdt.exe程序造成远程代码执行漏洞。简单来说就是攻击者可以恶意构造一个word文档&#xff0c;诱骗受害者点击&#xff0c;从而导致系统被黑。 0x01 环境部署 1. 测试版本 Microsoft Office LTSC …

FPGA XDMA 中断模式实现 PCIE3.0 视频采集 OV5640摄像头 提供2套工程源码和QT上位机源码

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案视频采集和缓存XDMA简介XDMA中断模式QT上位机及其源码 5、vivado工程1-->单路视频采集6、vivado工程2-->双路视频采集7、上板调试验证8、福利&#xff1a;工程代码的获取 1、前言 PCIE&#xff08;PCI …

springboot整合feign实现RPC调用

目录 一、服务提供者 二、服务消费者 三、测试效果 feign/openfeign和dubbo是常用的微服务RPC框架&#xff0c;由于feigin内部已经集成ribbon&#xff0c;自带了负载均衡的功能&#xff0c;当有多个同名的服务注册到注册中心时&#xff0c;会根据ribbon默认的负载均衡算法将…

用 perfcollect 洞察 Linux 上.NET程序CPU爆高

一&#xff1a;背景 1. 讲故事 如果要分析 Linux上的 .NET程序 CPU 爆高&#xff0c;按以往的个性我肯定是抓个 dump 下来做事后分析&#xff0c;这种分析模式虽然不重但也不轻&#xff0c;还需要一定的底层知识&#xff0c;那有没有傻瓜式的 CPU 爆高分析方式呢&#xff1f;…

使用testify包辅助Go测试指南

我虽然算不上Go标准库的“清教徒”&#xff0c;但在测试方面还多是基于标准库testing包以及go test框架的&#xff0c;除了需要mock的时候&#xff0c;基本上没有用过第三方的Go测试框架。我在《Go语言精进之路》[2]一书中对Go测试组织的讲解也是基于Go testing包和go test框架…

【Java|golang】415. 字符串相加

给定两个字符串形式的非负整数 num1 和num2 &#xff0c;计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库&#xff08;比如 BigInteger&#xff09;&#xff0c; 也不能直接将输入的字符串转换为整数形式。 示例 1&#xff1a; 输入&#xff…

五笔衰落,PC和OCR惹得祸?

许多人认为五笔输入法的衰落主要因素是败给了拼音输入法&#xff0c;是被拼音输入法给“打残”了&#xff0c;取代了&#xff0c;其实这只是表面原因&#xff0c;笔者认为&#xff0c;其关键因素是PC的衰落和OCR技术的不断改进和发展&#xff0c;理由如下&#xff1a; 1、PC出…

TCP/IP详解

目录 一、OSI参考模型 1.图示 2.OSI七层模型各自作用 3.七层通信过程 二、IP协议 1.IPv4首部 2.IPv6首部 三、TCP协议 1.tcp首部格式 2.握手挥手图示 3.握手流程 4.为什么要三次握手&#xff1f; 5.四次挥手流程 6.为什么要四次分手&#xff1f; 7.为什么要等待…

kafka接收外部接口的数据,并实现转发

目录 一、什么是kafka 二、kafka接收外部接口数据 三、kafka收到数据后转发 四、kafka总结 一、什么是kafka Kafka是一种分布式流式处理平台&#xff0c;最初由LinkedIn开发。它设计用于高吞吐量、低延迟的数据处理&#xff0c;能够处理大规模的实时数据流。Kafka采用发布…