ChatGPT网站如何像软件一样可以安装下载

news2024/11/20 12:37:28

今天给大家分享一下, 如何实现网站能够在手机端像软件一样下载在桌面保存, 这样下次就能像打开app一样访问网站了, 是不是听了之后会很心动呢, 接下来我们就一起来学习一下知识, 快来试试这样的效果吧, 最后分享一下我做的一个chatGPT网站, 欢迎大家免费试玩chatGPT, 不过我的免费账号也快过期了, 大家注意时间哈!

chatGPT: https://vite-chatgpt-production.up.railway.app/#/chat

直接在手机默认浏览器打开就行了, 非常方便简单

好了, 开始学习PWA吧

1. 后缀名webmanifest文件

".webmanifest"是一个Web App清单文件的后缀名,用于定义Web应用程序的元数据,如名称、描述、图标和其他相关信息,以便能够将Web应用程序安装到设备上,就像本地应用程序一样。该文件通常位于Web应用程序的根目录下,并使用JSON格式编写。

display属性指定了Web应用程序如何以全屏模式显示在用户设备上的方式,例如standalone(独立窗口)、fullscreen(全屏)和minimal-ui(最小化UI)。

在public文件下,存在该目录,同时在主页面link中引入,就能实现打开一个链接,将这个链接保存到手机桌面,下次再次打开这个图标,就再次访问这个链接.

<link rel="manifest" href="/site.webmanifest"></link>

图片就存放在于site.webmanifest同级的目录

{
  "name": "ChatGPT Vue Web",
  "short_name": "ChatGPT",
  "icons": [
    {
      "src": "/logo.png",
      "sizes": "321x321",
      "type": "image/png"
    }
  ],
  "start_url": "/",
  "theme_color": "#ffffff",
  "background_color": "#ffffff",
  "display": "standalone"
}

2. serviceWorkerRegister

还需要设计下载操作
在html的script标签中引入serviceWorkerRegister.js

在这里插入图片描述
serviceWorkerRegister.js代码如下:

if ('serviceWorker' in navigator) {
  window.addEventListener('load', function () {
    navigator.serviceWorker.register('/serviceWorker.js').then(function (registration) {
      console.log('ServiceWorker registration successful with scope: ', registration.scope);
    }, function (err) {
      console.error('ServiceWorker registration failed: ', err);
    });
  });
}

3. serviceWorker

看到逻辑,其实是在window窗口load时继续加载serviceWorker.js
而serviceWorker.js的逻辑也很简单,即使在窗口为活跃时,监听下载事件

const CHATGPT_WEB_CACHE = "chatgpt-vite-web";

self.addEventListener("activate", function (event) {
  console.log("ServiceWorker activated.");
});

self.addEventListener("install", function (event) {
  event.waitUntil(
    caches.open(CHATGPT_WEB_CACHE).then(function (cache) {
      return cache.addAll([]);
    }),
  );
});

self.addEventListener('fetch', function (event) {
  event.respondWith(
    caches.match(event.request)
      .then(function (response) {
        return response || fetch(event.request);
      })
  );
});


这样当网址在手机浏览器打开时,就会触发下载提示
在这里插入图片描述
点击确定,之后桌面上就会有iocn图标,点击之后就可以进入网址

在网页版打开,也会有下载安装提示呢

在这里插入图片描述
接下来来体验一下chatGPT吧

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
最后PWA不能保证百分之百出现提示下载, 还是无法做到向原生一样的效果,有一些浏览器和设备将不支持的, 下面是来自于chatGPT的回答:

大多数现代浏览器都支持PWA(渐进式网络应用程序),但是在某些旧的操作系统和浏览器版本上可能会遇到问题。以下是一些已知的不支持PWA的浏览器和设置:
● Internet Explorer和Safari(iOS 12及更早版本)不支持PWA。
● 在Android上使用Chrome浏览器时,如果启用了“保存数据”选项,则不支持PWA。
● 如果在浏览器中禁用了JavaScript或Cookie,PWA也将无法正常工作。
● 在隐身模式下,有些浏览器也可能无法完全支持PWA功能。

当然,如果下载过一次了, 下次再打开就不会提示了, 因为这个是有缓存的, 需要删除上次下载的记录和清除缓存才能实现, 好了, 今天分享结束啦, 欢迎大家试玩哈!

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

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

相关文章

JVM系列-第8章-执行引擎

执行引擎 执行引擎概述 执行引擎概述 执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念&#xff0c;这两种机器都有代码执行能力&#xff0c;其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的&#xff0c;而虚拟…

GreatSQL社区月报 | 2023.04

GreatSQL 是一个开源的 MySQL 技术路线数据库社区&#xff0c;社区致力于通过开放的社区合作&#xff0c;构建国内自主 MySQL 版本及开源数据库技术&#xff0c;推动中国开源数据库及应用生态繁荣发展。 为了帮助社区的小伙伴们更好地了解 GreatSQL 社区的实时进展&#xff0c…

项目经理什么事都做,只会让你成为工具人

每个人拥有的时间都是一样的&#xff0c;每天二十四个小时&#xff0c;为什么有的项目经理每天提前完成工作下班喝酒撸串&#xff0c;为什么有的项目经理每天熬夜加班到天明&#xff1f; 为什么总是你的时间不够用&#xff0c;每天都很忙碌呢。很可能是你的时间没有管理好。 …

笔记-指针的进阶

1.字符指针 char arr[] "hello bit." char * p arr 这里p指向的是数组的首元素&#xff0c;arr数组是可以修改的。 &#xff08;const&#xff09;char * pstr "hello bit." 这里的字符串是常量字符串&#xff0c;不能修改。 这里有一个面试题&#xf…

LeetCode_二叉树_中等_113.路径总和 II

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有从根节点到叶子节点路径总和等于给定目标和的路径。 叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root…

网络基础知识(1)——从OSI七层模型和TCP/IP说起

网络通信概述 网络通信本质上是一种进程间通信&#xff0c;是位于网络中不同主机上的进程之间的通信&#xff0c;属于 IPC 的一种&#xff0c; 通常称为 socket IPC&#xff0c;如图中所示。所以网络通信是为了解决在网络环境中&#xff0c;不同主机上的应用程序之间的通信问题…

U盘上的文件删除了可以恢复吗 U盘上的文件怎么在电脑上恢复

随着数据时代的到来&#xff0c;人们使用U盘来存储和传输文件已经成为一种普遍的方式。然而&#xff0c;有时候人们会不小心将重要的文件从U盘上删除&#xff0c;或者由于其他原因导致文件丢失&#xff0c;这会给人们带来很多麻烦和不必要的损失。因此&#xff0c;在这篇文章中…

华为OD机试(1-20)老题库解析Java源码系列连载ing

华为OD机试算法题新老题库练习及源码 老题库1.敏感字段加密2.IPv4地址转换成整数3.VLAN资源池4. 求字符串中所有整数的最小和5.求满足条件的最长子串的长度6.字符串分割7.一种字符串压缩表示的解压8.矩阵最大值9.单词接龙10.找出符合要求的字符串子串11.字符串加密12.英文输入法…

指定目标对角线创建值全是1的下三角矩阵numpy.diagflat()方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 指定目标对角线 偏离主对角线的距离k 创建值全是1的下三角矩阵 numpy.tri() 选择题 关于以下代码说法错误的一项是? import numpy as np print("【执行】a np.tri(3, 3, 0, dtypeint)…

三十二、VPN技术概述——GRE、IPSec、MPLS vpn

文章目录 vpn 简介用途优缺 一、GRE-VPN1、基础配置步骤&#xff1a;2、可选配置 二、IPSEC-VPN 概述1、IPSes 特性2、IPSec 架构3、IPSec 数据封装 三、GRE OVER IPSEC VPN 配置1、配置2、注意 vpn 简介 vpn&#xff1a;virtual private network&#xff08;虚拟专用网络&…

Prompt都不需要了,动动手就能玩多模态对话系统,iChat来啦!

作者 | 智商掉了一地 近日有很多团队基于用户友好的 ChatGPT 进行再创作&#xff0c;其中不乏有比较亮眼的成果。InternChat工作强调了用户友好性&#xff0c;这是通过超越语言的方式&#xff08;光标与手势&#xff09;与聊天机器人交互来进行多模态任务的。InternChat 的命名…

MATLAB基础入门:语法、数据类型和常用函数

MATLAB是一种非常强大的数学计算软件&#xff0c;广泛应用于工程、科学、金融和其他领域的计算分析中。如果您刚开始学习MATLAB&#xff0c;那么这篇文章就是为您准备的。在这篇文章中&#xff0c;我们将介绍MATLAB的基础语法、数据类型和常用函数&#xff0c;以帮助您快速入门…

容器技术Docker

什么是容器 Linux容器是与系统其他部分隔离开的一系列进程&#xff0c;从另一个系统镜像运行&#xff0c;并由该镜像提供支持进程所需的全部文件。 容器镜像包含了应用的所有依赖项&#xff0c;因而在从开发到测试再到生产的整个过程中&#xff0c;它都具有可移植性和一致性。…

C++ | std::bind

C | std::bind 文章目录 C | std::bindstd::bind函数原型bind函数参数返回对象的类型&#xff1a; 实战1.普通函数/类成员函数/类成员变量2.模板函数3.lambda表达式 Reference std::bind函数原型 // 无返回值&#xff08;1&#xff09; template <class Fn, class... Args&…

OpenHarmony下如何打印C/C++调用堆栈

普法OpenHarmony下如何打印C/C调用堆栈 引言 各位大姐&#xff0c;老妹&#xff0c;兄弟是否在OpenHarmony开发移植过程中有过如下烦恼呢&#xff1f;想跟踪源码探寻相关代码逻辑的时候&#xff0c;当面对代码分支逻辑太多&#xff0c;太复杂&#xff0c;打调试信息进行追踪已经…

Mach-O

看看逆向过程中&#xff0c;经常遇见的Mach-O文件类型&#xff1a; MH_OBJECT&#xff0c;这种类型的文件有目标文件(.o)、静态库文件(.a) &#xff08;静态库文件就是N个.o文件合并在一起的&#xff09; MH_EXECUTE&#xff0c;可执行文件&#xff0c;例如上面说的Super文件 …

如何选择一款好的护眼台灯给孩子用?儿童护眼台灯推荐

所以也想要分享给大家&#xff0c;那么热爱看书的你&#xff0c;是否有时候会因为光源的问题而烦恼呢&#xff1f;房间所用的大灯虽然亮度足够&#xff0c;但太过于分散的光&#xff0c;让眼睛在长期聚精会神后&#xff0c;有了红肿干涩&#xff0c;酸痛模糊的感觉。而专用的台…

界面控件DevExpress Blazor UI v22.2 - 折叠组件、数据编辑器升级增强

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具&#xff0c;该组件拥有众多新产品和数十个具有高影响力的功能&#xff0c;可为桌面、Web和移动应…

远程桌面基本原理

远程桌面基本原理 远程桌面是一种技术&#xff0c;它允许用户通过互联网或局域网远程访问另一台计算机的桌面。这种技术可以让用户在不同的地方使用同一台计算机&#xff0c;或者在同一地方使用不同的计算机。远程桌面技术在现代计算机应用中发挥着重要的作用&#xff0c;本文将…