写点什么

Progressive Web App:模仿原生应用的 Web 应用

  • 2015-11-27
  • 本文字数:1195 字

    阅读完需:约 4 分钟

Progressive Web App 的外观和行为都同原生移动应用类似,但它本质上上仍然是Web 应用,不需要通过应用商店部署。

Ashteya Biharisingh 是一名混合移动应用开发人员。据她介绍

[Progressive Web App] 是一个具有响应式布局的 Web 应用,可以离线工作,并能够安装到设备的主屏幕上。这里所说的“安装”是指:在主屏幕上添加该 Web 应用的快捷方式。当用户点击快捷方式时,Web 应用会加载到浏览器,并以全屏模式打开。

Progressive Web App 有许多好处。对用户而言,他们无需在设备上安装应用。与原生 / 混合应用相比,这大大节省了设备的存储空间。对开发人员而言,他们无需通过应用商店发布应用,版本发布和 Bug 修复可以更及时。

近日,印度最大的网上商店之一 FlipKart 推出了一个 Progressive Web App:FlipKart Lite。Android 用户通过浏览器打开该网站时会看到一条“添加到主屏幕”的消息。下次,当用户使用该 Web 应用时,只要点击主屏幕上的图标,它就会以全屏模式打开,就像一个原生应用。目前,作为一个 Progressive Web App,FlipKart Lite 仅支持 Android 设备。如果用户在 iOS 设备上访问该网站,会被重定向到应用商店。这是因为 FlipKart Lite 使用 Service Worker 实现了离线功能,而后者仅在 Chrome 和 Opera 上得到了支持。关于FlipKart 的更多信息,可以查看这篇博文或者这段来自2015 Chrome 开发者峰会的视频

重要通知:接下来InfoQ 将会选择性地将部分优秀内容首发在微信公众号中,欢迎关注InfoQ 微信公众号第一时间阅读精品内容。

Bruce Lawson 是一名来自 Opera 的工程师。据他介绍,Opera 和Chrome 正紧密合作,探索Progressive Web App 的最佳实现,但他们的实现之间还是有一些差别。在Bruce 看来,为了便于此类应用的推广,应该有一种机制可以在用户第一次访问网站时作出提醒,该网站是一个Progressive Web App,而不是在第二次访问时才提醒用户“安装我们的应用”

Nolan Lawson 是 Progressive Web App Pokedex.org 的创建者。对于 FlipKart Lite 的出现,他写到

这个应用让我超级兴奋,因为它向我们展示了,仅仅使用 Web 技术就可以构建一个离线的、60FPS 的移动应用。

Bruce 认为,Progressive Web App 已经准备好迎接它的黄金时代。微软正考虑在其浏览器中添加 Service Worker支持。而且,他们还遵循 W3C Maifest 创建了 manifold.js ,使开发人员可以开发跨平台和设备的托管应用。iOS 也提供了一种创建“可主屏化(homescreen-able)”应用的方式。

感兴趣的读者可以进一步查阅Bruce 提供的其他一些相关资源,如 Web Manifest 说明 Service Worker 手册等。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者(已满),InfoQ 读者交流群(#2)InfoQ 好读者)。

2015-11-27 18:009316
用户头像

发布了 1008 篇内容, 共 442.4 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

Mysql中,1=1和 1=1=1 和 -1=-1 和 -1=-1=-1 和 5=5 和 5=5=5 有什么区别

Geek_de9857

MySQL sql 返回值 1=1=1 -1=1=1

去 DeepMind 面试是怎样一种体验?

故胤道长

人工智能 面试 谷歌Google 硅谷 移动开发

原创 | 使用JPA实现DDD持久化-通过Spring Data JPA访问数据

编程道与术

Java hibernate 编程 mybatis jpa

基于区块链的政务平台设计探索

华为云开发者联盟

区块链 架构 安全

读《全球创新投资:经济大变局中的财富新机遇》

邓瑞恒Ryan

创业 读书笔记 企业 企业管理 产业竞争

阿里Java岗面试必备JVM指南:内存分配+垃圾回收+调优+类加载器等

Java架构之路

Java 程序员 架构 面试 编程语言

盘点 2020 | 感悟总结

idonkeyliu

盘点2020

佛萨奇Forsage系统开发,智能合约dapp技术

薇電13242772558

智能合约 dapp

15年华为云视频架构师采访实录:揭秘未来音视频行业的科技趋势!

华为云开发者联盟

直播 视频 华为云

原创 | 使用JPA实现DDD持久化-O/R映射元数据-关联属性映射

编程道与术

Java hibernate 编程 mybatis jpa

自从看了百度强推的“Spring源码笔记”我从渣渣成功逆袭成为钢铁侠!

比伯

Java 架构 程序人生 计算机 spring源码

第九周学习总结

Griffenliu

阿里Java研发第2面,都会问什么?斩获阿里P6+的“他”告诉你答案

Java架构之路

Java 程序员 架构 面试 编程语言

终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南可太强了

Java架构之路

Java 程序员 架构 面试 编程语言

朱嘉明:产业周期、科技周期与金融周期的失衡

CECBC

金融 科技

原创 | 使用JPA实现DDD持久化-O/R映射元数据-值属性映射

编程道与术

Java hibernate 编程 mybatis jpa

第九周作业

Griffenliu

原创 | 使用JPA实现DDD持久化-启动JPA程序+通过JPA原生API访问数据

编程道与术

Java hibernate 编程 mybatis jpa

架构师训练营第 1 期 -week13

习习

【涂鸦物联网足迹】用煲仔饭来说明IaaS/PaaS/SaaS的区别

IoT云工坊

云计算 IaaS PaaS SaaS 云平台

一文详解激活函数

书豪

JavaScript中,if判断未生效的一些特殊情况

Geek_de9857

js 1 if 0 不生效

Java程序员还没有掌握SpringBoot?这一份文档你真应该好好学学!

Java架构之路

Java 程序员 架构 面试 编程语言

一周信创舆情观察(12.7~12.13)

统小信uos

架构师训练营第四周命题作业

Geek_xq

滴滴DoKit阶段性成果汇报之一机多控

工具 滴滴开源 DoKit

阿里云容器服务入选云原生边缘「领导力企业TOP3」,推动「原生云边」基础设施标准建立

阿里巴巴云原生

阿里云 容器 开发者 云原生 边缘计算

Hive中,同时存在map、array、struct这三种格式,应如何在建表语句中指定分隔符?

Geek_de9857

hive struct map array 分隔符

原创 | 使用JPA实现DDD持久化-O/R映射元数据-值和关联的比较+继承映射

编程道与术

Java hibernate 编程 mybatis jpa

eCharts -- 如何修改柱状图中相关数据的顺序?如何在鼠标悬浮时增加百分比信息?如何为柱状图设置分组?

Geek_de9857

柱状图 eCharts 修改数据顺序 百分比提示信息 设置分组

架构师训练营 1 期 -- 第十三周作业

曾彪彪

极客大学架构师训练营

Progressive Web App:模仿原生应用的Web应用_移动_谢丽_InfoQ精选文章