2015年,谷歌推出了一种开发Android网络应用的新方法:progressive web apps。可以创建一个看起来像本机应用程序的应用程序,可以使用设备的硬件,如摄像头和加速度计,接收推送通知,启动启动器图标,离线工作,存储本地数据等。
在Android上,本机应用程序提供的渐进式网络应用程序不支持哪些功能,反之亦然。
答案 0 :(得分:182)
TL; DR - 截至2017年2月,Progressive Web Apps是一个功能强大的平台Twitter has moved all of their mobile web traffic to a React PWA。
截至2016年8月,Progressive Web Apps实际上提供了比通常想象的更多的硬件访问。这是我在Android 52上的Chrome 52稳定版中whatwebcando.today的屏幕截图:
这些功能正在实施或已在某些浏览器中使用:
需要注意的另一个要点是Origin Trials框架(implemented in Chrome)使制造商能够公开和测试硬件(或软件)功能,而无需经历标准化过程。例如,手机制造商可以公开用于读取压力传感器值的API,对其进行优化,然后将其提交给W3C考虑。
除硬件访问外,还有传统上由原始应用程序使用的软件功能,现在可供网络应用程序使用。
硬件加速的2D / 3D图形 - 检查部分HTML5 Canvas demos,WebGL sites或three.js library。 2014年基准Unity cross-platform game engine比较了原生与WebGL渲染性能,concluded表示
"最重要的一点是,虽然仍然存在WebGL明显慢于本机代码的区域,但总体而言,您可以获得非常好的性能,而且这种情况在未来只能变得更好。&#34 ;
这些功能涵盖了很多用例,现在许多流行的原生应用都可以重写为PWA。以Slack为例。它的开源替代方案Rocket.Chat, is building a PWA version。有关更多PWA演示,请参阅https://pwa.rocks。
最后注意事项:PWA在桌面和大多数移动设备上以相同的代码库运行。在桌面环境(ChromeOS和later Mac和Windows)上,它们以与其他应用相同的方式启动,并在常规应用窗口(无浏览器标签)中运行。
答案 1 :(得分:12)
本机应用程序的主要优点是它们可以访问平台可以提供的所有本机API(联系人,相机闪存,SMS,电话,网络,蓝牙,传感器,原始套接字......),而渐进式Web应用程序不能(但)因为它们受标准Web功能的限制。
渐进式Web应用程序的目标是扩展这些功能以涵盖最关键的案例。在这种情绪下,请查看Progressive Web Apps: Escaping Tabs Without Loosing Our Soul,您可以在其中找到渐进式Web应用程序应提供的列表:
- 响应:适合任何形式因素
- 独立于连接:与服务工作者一起逐步增强,让他们脱机工作
- 类似App的交互:采用Shell + Content应用程序模型来创建appy navigations&相互作用
- 新鲜:由于服务工作者更新过程,透明地始终保持最新状态
- 安全:通过TLS(服务工作者要求)提供服务以防止窥探
- 可发现:由于W3C清单和服务工作者注册范围允许搜索引擎找到它们,可以识别为“应用程序”
- 可重新参与:可以访问操作系统的重新参与UI;例如推送通知
- 可安装:通过浏览器提供的提示进入主屏幕,允许用户“保留”他们认为最有用的应用,而不会有应用商店的麻烦
- 可链接:意味着它们是零摩擦,零安装且易于共享。网址的社交能力很重要。
从这些观点来看, linkable 是以mobile deep linking形式从Open Web本机应用程序导入的首批特征之一。
但特别值得一提的是组合新鲜 + 可安装,因为它代表了作为 native 平台的Web的主要优势之一备择方案。此处可安装表示它出现在主屏幕中。这并不意味着您需要通过下载和安装阶段。您在浏览时打开URL或发现服务并完成:it appears in your home screen。
Fresh 指的是常规网络的工作方式,提供即时加载和无缝更新。我们不会要求您在YouTube网站上安装更新,但会在您下次访问时使用该更新。
我并不是在谈论其余各点的好处,因为你要求的是差异,例如,重新参与是本机应用程序已经通过推送服务和通知已经拥有的东西,现在Web应用程序已经赶上了。 / p>
其他相关和关键问题是哪个平台更适合您的需求。如果您没有访问特殊的硬件功能,那么Web就足够了,选择不受市场,专有生态系统影响的网络,顺便说一下,您可以确保某些等级的普遍性和互操作性。 / p>
作为最后的说明,我建议您通过Chrome浏览器浏览www.flipkart.com。它非常棒:没有错误,流畅的导航,应用程序般的感觉。离线,它将继续工作。这篇文章的一个真实世界的例子。将应用程序添加到主屏幕,下次打开它时,体验会更好。
您可以查看Firefox OS以及将more platform APIs带入标准网的示例(或多或少取得成功)。