首页 > 编程语言 >PWA 是属于谷歌的“小程序”!有哪些核心技术

PWA 是属于谷歌的“小程序”!有哪些核心技术

时间:2023-10-30 11:34:38浏览次数:36  
标签:Web 核心技术 App 谷歌 离线 应用 PWA 推送

在国内由于小程序的风生水起,PWA 应用在国内的状况一直都不是很好,PWA 和小程序有很多的相似性,但是 PWA 是由谷歌发起的技术,小程序是微信发起的技术,所以小程序在国内得到了大力的扶持,很快就在国内技术界开花结果。

这里想讨论下在去创建自己的第一个 PWA 应用前,什么是 PWA 应用,有哪些核心的技术?

先搞清楚 PWA

PWA 全称渐进式 Web 应用(Progressive Web App)是一个使用 web 平台技术构建的应用程序,但它提供的用户体验就像一个特定平台的应用程序。

它像网站一样,PWA 可以通过一个代码库在多个平台和设备上运行。它也像一个特定平台的应用程序一样,可以安装在设备上,可以离线和在后台运行,并且可以与设备和其他已安装的应用程序集成。

对于用户来说,PWA 应用最大的变化在于,改变了以往需要下载安装包、等待安装的过程,这类应用很好地体现了「用完即走」的理念,与传统安装应用相比,PWA 应用具备的优势是:无需安装、更轻量、不占用大量空间,只需要一款支持 PWA 应用的浏览器,就可以轻松添加 PWA 应用,具备了跨平台使用的特性。

如果想要更为直接的体验,可以直接访问下谷歌官方上线的 PWA 体验 demo:squoosh.app ,算是 PWA 技术实际应用的典范,整个页面的大小都只有41K。

PWA的技术核心

PWA的技术核心可以分为四个部分:
●桌面图标 Web App Manifest :将网站添加到桌面,让 PWA 应用的访问使用更类似 native 的体验。
●离线访问 Service Worker :指定一些静态资源进行离线缓存。
●消息推送 Push Api & Notification Api :让 PWA 应用可以进行消息的推送和通知。
●应用壳及应用结构 App Shell & App Skeleton :应用的基本结构。

1、桌面图标 Web App Manifest

Manifest File 是一个配置 JSON 文件,里面包含 PWA 的信息,例如安装到主屏幕上显示的图标、Web 应用的名称和背景色。

如果 Manifest File 存在的话,Chrome 等浏览器会自动激活用于引导用户安装 PWA 应用的提示“添加到主屏幕”。

PWA 是属于谷歌的“小程序”!有哪些核心技术_ico

如果用户同意,图标就会添加到主屏幕并安装 PWA。

关于如何创建 Manifest File 这里放一个示例:

{
"name": "Progressive Selfies",
"short_name": "PWA Selfies",
"icons": [
{
"src": "/src/images/icons/app-icon-192x192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "/src/images/icons/app-icon-512x512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": "/index.html",
"scope": ".",
"display": "standalone",
"background_color": "#fff",
"theme_color": "#3f51b5"
}

然后需要给浏览器传递关于图标的信息,加一个连接的 tag 到 index.html。

2、离线访问 Service Worker

Service Worker 是一段 JavaScript,主要用于浏览器和网络之间的代理。Service Worker 支持推送通知、后台同步、缓存等。

PWA 是属于谷歌的“小程序”!有哪些核心技术_ico_02

这里主要讨论的核心功能是允许 PWA 拦截和处理网络请求。另外一个让人觉得靠谱的原因是,允许通过利用缓存来支持离线访问,这样能够使开发人员能够控制用户的体验。

3、消息推送 Push Api & Notification Api

消息推送 API 和通知 API 是两个独立的 API,但他们两个可以很好地协同工作,消息推送用于将新内容从服务器传递到应用,这个时候是无需客户端干预的。

官方文档demo:

self.addEventListener("push", (event) => {
if (!(self.Notification && self.Notification.permission === "granted")) {
return;
}

const data = event.data?.json() ?? {};
const title = data.title || "Something Has Happened";
const message =
data.message || "Here's something you might want to check out.";
const icon = "images/new-notification.png";

const notification = new self.Notification(title, {
body: message,
tag: "simple-push-demo-notification",
icon,
});

notification.addEventListener("click", () => {
clients.openWindow(
"https://example.blog.com/2015/03/04/something-new.html",
);
});
});

写到最后

PWA 在国内不少国民 App 中都有应用,例如淘宝、豆瓣等,如果应用合理也有非常丝滑的体验,其实推荐有一些创新业务的企业或者对于小程序技术不感兴趣的开发同学都可以尝试起来。

虽然 PWA 应用可以使用浏览器的一些原生功能,如推送通知和地理位置,但与原生应用相比,其访问原生设备能力的范围有限,例如摄像头、传感器等。

但是现在小程序的这种限制逐渐得到突破,可以像原生app一样获取相关一些权限能力,借助小程序容器技术能够做到小程序脱离微信、支付宝等平台运行在自己的App中,例如集成 FinClip SDK 或 mPaaS 即可让自己的App获得像微信一样的小程序运行能力,实现一端开发多端的运行。


标签:Web,核心技术,App,谷歌,离线,应用,PWA,推送
From: https://blog.51cto.com/u_15735571/8086947

相关文章

  • 谷歌浏览器置顶了,很麻烦,取消谷歌浏览器置顶
    第一步:右击任务栏-属性-勾选“自动隐藏任务栏” ,关闭chrome浏览器;第二步:重新打开chrome浏览器,将鼠标移到底部后任务栏显示出来,右键属性,把“自动隐藏任务栏”的勾点去;......
  • 半导体核心技术外泄,多名三星高管被查 | 百能云芯
    10月27日消息,据韩国近日传出一起涉及三星电子公司的敏感案件,一名前高管被指控向中国泄露核心半导体技术和人力资源,引发了广泛关注。这名前高管还被控非法使用工厂蓝图,并将机密信息泄露给其他公司。韩国官员透露,首尔地方警察厅已展开调查,对三星前副总裁、前高级研究员、一位大学教授......
  • 解决谷歌浏览器自动更新的问题
    首先我们需要了解的是谷歌浏览器之所有会自动更新和服务以及定时任务有关系的先找到服务电脑右键->找到管理  找到任务计划程序   其他的计划不需要也可以删除以上就是今天的全部教程......
  • 让大模型真正学会1+1=2!谷歌教会模型自动学习推理规则,大模型的幻觉有救了
    作者|谢年年在初学算术加法或乘法时,我们通过数小棍的方式逐步从1+1=2,1+2=3等例子中得出1+3=4,这是一种依赖记忆中的数学表格进行演绎推理的过程。后来老师告诉我们前辈们总结了一套完备的求和或乘法表,只要背住,做简单算术题根本不成问题,也不需要数小棍啦!这样一套完备的求和或乘法表......
  • 谷歌、AMD、英特尔加入挑战,英伟达AI解决方案还能继续“遥遥领先”吗?
     编译|谢年年要问世界范围内人工智能解决方案谁最“遥遥领先”?那肯定是英伟达!然鹅这一情况很有可能会发生变动。谷歌正在构建自己的人工智能基础设施!除了谷歌,在软件方面,Meta的PyTorch2.0和OpenAITriton同样发展迅速。AMD的GPUs、英特尔的Gaudi、Meta的MTIA以及微软的Athena,它......
  • 《安富莱嵌入式周报》第321期:开源12导联便携心电仪,PCB AI设计,150M示波器差分探头,谷歌
     视频版:https://www.bilibili.com/video/BV1ju4y1D7A8/1、开源12导联便携心电仪https://voltagedivide.com/2017/10/14/psoc-design-and-implementation-of-a-12-lead-portable-ecg/这个开源有完整的上位机,下位机和原理图,并且有一个详细的设计论文。12导联心电图是心电图检查中常......
  • 安卓系统如何使用谷歌框架下的app?
    1.问题安卓系统从理论上无法使用谷歌框架下的应用(比如像GMail,YouTube,Googleplay等等),会导致一些麻烦(闪退,卡在登陆界面等等)注意:使用前提是会魔法,否则请绕道2.解决方案2.1安装谷歌三件套谷歌三件套分别是指Google服务框架、Googleplay商店和GooglePlay服务,这三件套是谷歌公......
  • 谷歌搜索最实用技巧50条
    谷歌搜索最实用技巧50条使用双引号来搜索一个短语,例如:"人生苦短"使用减号来排除一个词,例如:巧克力-糖使用星号来替代一个词,例如:最好的*是什么?搜索一个特定网站:site:example.com搜索关键词搜索一个特定文件类型:filetype:pdf关键词搜索与关键词相关的定义:define:关键词......
  • 计时 System.Diagnostics.Stopwatch
     // System.Diagnostics.Stopwatch.StartNew();  //使用StartNew表示已经实例并且开始计时//sw.Reset();//重置//sw.Elapsed.TotalMilliseconds;//毫秒  System.Diagnostics.Stopwatchsw=newSystem.Diagnostics.Stopwatch();  sw.Start();......
  • 谷歌黑框、谷歌浏览器黑边
    Windows11谷歌浏览器黑边问题完美解决问题图片:一、开始解决:桌面图标右键点击属性 二丶兼容性点击更改所有用户的设置三丶取消设置取消选中——以兼容模式运行这个程序 四丶完美解决 启发文章在此......