微信号:frontshow

介绍:InfoQ大前端技术社群:囊括前端、移动、Node全栈一线技术,紧跟业界发展步伐。

现在你可以在电脑Chrome上使用PWA啦!

2018-02-28 18:41 郝毅 译

大多数人应该都听说了微软已经着手在 Windows 商店中增加 PWA,这是一个重磅消息!

渐进增强式 Web 应用即将在 Win10 系统上线!

作为制定 Web App Manifest 规则的联合编辑,Kenneth 一直参与到相关规则的制定中。实际上,微软是最早关注 Web App Manifest 的公司之一,最开始使用他们的 Manifold 工具,然后转为使用 http://PWAbuilder.com。

自从首个 ManifoldJS 发布之后,Marcos Caceres 和 Kenneth 进行了联系,并结识了 Jeff Burtoft。这一系列的事件推动了谷歌在该方面与微软的合作,最终改进了 Manifest,以便它在 Windows 商店和桌面应用上取得更好表现。

几年前,谷歌在 Chrome OS 中添加了一些“add to shelf”的支持,这是一次实验性的改进,存在很多不完善的地方。但是在很长一段时间里都能正常使用。因此 Kenneth 提到,当 2017 年 Owen Campbell-Moore 在旧金山的 chrome Dev 峰会上发表演讲时他感到非常激动。

Owen 还提到谷歌将扩展 PWA 的使用范围,将 PWA 最终推广到其所有平台的桌面系统。更加重要的是,他们不仅添加了桌面支持,还开放了其 API。如今,许多团队 (比如 Slack 和 VSCode) 都使用了类似的方法,利用 Electron 将他们的 Web 应用封装到一个原生容器中,然后开放原生 API。

这种方法存在一个弊端,由于浏览器中存在很多公开的安全漏洞,用户的安全问题会面临威胁。虽然大多数漏洞会被浏览器供应商及时解决,但是使用 Electron 封装的版本通常更新较慢。这就会导致用户需要承受更多的风险。而桌面 PWA 支持则可以解决这个问题,前提是开发人员可以访问他们需要修改部分的 API。

Owen Campbell-Moore 在 Twitter 中提到,Contacts API 是谷歌最早开发的 API 之一:

在 Chrome 中使用 PWA

在最近版本的 Chrome 浏览器 (比如 Canary) 中,打开“about:flags”页面然后搜索“progressive”,将选项 #desktop-pwas 的属性改为 Enable:

在 about:flags 或 chrome://flags 页面,你可以使用一些实验性的功能

之后,就可以安装 PWA 程序到你的桌面系统。

这是 Windows 上的运行效果:

Windows 上运行的 Twitter Lite

这是 Linux 上的运行效果:

Ubuntu 上运行的 Pokedex

Chrome OS 上的 PWA

在 Chrome OS 上的 PWA 除了有上述优点之外,还有就是它看起来真的很酷!

窗口标题标题使用主题颜色,标题后面跟着是 PWA 的域名。

tuner.ninja 和 app.starbucks.com

使用了窗口化的 PWA 之后,Chrome OS 看起来更像一个桌面系统了

应用程序也可以轻松地访问 Chrome 并分享 URL。对于每个应用,都会有一个叫做应用信息 (App info) 的特殊选项。

应用信息允许用户配置应用的打开方式,比如选择在新的标签页打开或者另一个独立的窗口打开。他包含关于 Manifest Web App 中的“description”字段的信息,该功能最初是为微软的应用商店设计。

用户可以决定如何打开应用程序!

如何在桌面系统上配置谷歌地图用户可以通过下面的网址访问谷歌地图 PWA,在桌面端或移动端都可以使用

https://maps.google.com/?force=pwa

但是,只有在移动端访问时候才会安装 Service Worker,但桌面用户可以通过 Chrome 开发工具强制加载 Service Worker,在桌面端达到和移动端相同的使用体验。

欺骗 PWA,让它以为是在移动端运行。记住设置后需要重新加载以安装 Service Worker.

PWA 的未来?

2018 年将会是 PWA 大爆发的一年,桌面支持也将迎来全新的改变。

PWA 的开发团队甚至在苹果设备上添加了 Service Workers 与 Web App Manifest 对 IOS 的支持,对于 Web 应用来说,一切都在发生着变化!

更新:分屏功能

前一段时间谷歌发布了 Chrome OS 关于 Android 应用的新闻,提到 Android 应用在 Chrome OS 上支持分屏操作。同样,由于这一功能是为 Chrome 窗口所设计,所以分屏操作同样适用于 PWA,就像下图所示!

更新:Web 内容共享

多年以前,谷歌使用 navigator.share API 在 Android 系统上实现了 Web 共享。如果用户在 about:flags 中启用了实验性的 Web 平台功能,那么用户甚至可以为已安装的 PWA 添加 Web 共享目标,比如使用 Twitter Lite 进行共享。

Justin Willis 的新 Demo 允许用户通过 Web 共享功能分享歌曲

目前这项功能已经开放使用,并已在 Linux 和 Chrome OS 上线。但是仍存在一个问题,在共享到 Twitter 时,共享窗口会在一个新的 Chrome 选项卡中打开,而不是在已安装的 PWA 中打开,当然这个问题会慢慢修复。

在已安装的 Twitter Lite 上添加 Web 共享对象支持后,歌曲就可以直接被分享到 Twitter 上。

这个功能可以完美的在 Android 上运行,并且共享窗口会在当前使用的 PWA 中打开。

Android:从一个 PWA(InstaMusic) 向另一个 PWA(Twitter Lite) 分享歌曲

查看原文:

https://medium.com/@kennethrohde/progressive-web-apps-coming-to-all-chrome-platforms-80e31272e2a8

前端之巅

「前端之巅」是 InfoQ 旗下关注前端技术的垂直社群,加入前端之巅学习群请关注「前端之巅」公众号后回复 “ 加群 ”。投稿请发邮件到 editors@cn.infoq.com,注明 “ 前端之巅投稿 ”。

活动推荐:

随着人工智能、物联网等技术的普及,从未来的端来看,端已经不仅仅是手机和 PC,会涉及到各种各样的端的交互和展现形式。QCon 北京 2018,与淘宝高级技术专家寒冬、新浪微博技术专家聂永、百度资深前端工程师彭星等技术大咖探索前端技术实践,以及实践中的思考和经验参考。目前大会 8 折报名中,立减 1360 元。有任何问题可咨询购票经理 Hanna,电话:15110019061,微信:qcon-0410。

 
前端之巅 更多文章 这里有25个React Native免费教程,请您查收~ RedMonk发布编程语言排行榜:Swift成为全球增长最快的编程语言 滴滴出行跨地域 iOS 构建优化与持续集成 Swift 4.2进入最后开发阶段,为Swift 5铺平道路 致移动开发前线读者
猜您喜欢 数据工厂平台实践 互联网竞争将黑手伸向孩子,百度作业帮被指发黄色信息栽赃同行 理解Android命名规范 全新 Kali Linux 系统安装指南 谈谈分类器的损失函数(1)