Answers:
TL; DR-截至2017年2月,渐进式Web应用程序已足够强大,平台已将Twitter的所有移动网络流量都移至React PWA中。
截至2016年8月,渐进式Web应用程序实际上提供了比通常认为更多的硬件访问。以下是我的Android版Chrome 52稳定版中whatwebcando.today的屏幕截图:
这些功能已在某些浏览器中实现或已经运行:
需要注意的另一个重要点是,Origin Trials Framework(在Chrome中实现)使制造商无需进行标准化过程即可公开和测试硬件(或软件)功能。例如,电话制造商可以公开用于读取压力传感器值的API,对其进行优化,然后将其提交给W3C。
除硬件访问外,本机应用程序还具有传统上采用的软件功能,现在可用于Web应用程序。
通过HTML5 Canvas或WebGL进行硬件加速的2D / 3D图形-检查一些HTML5 Canvas演示,WebGL网站或three.js库。2014年Unity跨平台游戏引擎的基准测试比较了原生和WebGL渲染性能,得出的结论是
“最重要的要点是,尽管在某些地方WebGL比本地代码要慢得多,但总的来说,您已经可以预期到非常不错的性能,而且将来只会变得更好。”
这些功能涵盖了许多用例,并且当今许多流行的本机应用程序都可以重写为PWA。以Slack为例。它的开源替代品Rocket.Chat正在构建PWA版本。有关更多PWA演示,请参见https://pwa.rocks。
最后的注意事项:PWA以相同的代码库在台式机和大多数移动设备上运行。在桌面环境(ChromeOS,以及后来的 Mac和Windows)上,它们以与其他应用程序相同的方式启动,并在常规应用程序窗口(无浏览器选项卡)中运行。
本机应用程序的主要优点是,它们可以访问平台可以提供的所有本机API(联系人,相机闪光灯,SMS,电话,网络,蓝牙,传感器,原始套接字...),而渐进式Web应用程序还不能(尚未)因为它们受到标准Web功能的限制。
渐进式Web应用程序的目标是扩展这些功能以涵盖最关键的情况。在这种情况下,请看一看渐进式Web应用程序:逃脱选项卡而不会松懈,您可以在其中找到渐进式Web应用程序应提供的功能的列表:
- 响应式:适合任何尺寸
- 独立的连接性:逐步增强服务人员,使其可以脱机工作
- 类应用互动:采用Shell + Content应用模型创建应用导航和互动
- 新鲜:由于服务人员更新过程,透明地始终保持最新
- 安全:通过TLS(服务工作者要求)提供服务以防止监听
- 可发现:由于W3C清单和Service Worker注册范围,搜索引擎可以将它们识别为“应用程序”
- 可重新参与:可以访问操作系统的重新参与用户界面;例如推送通知
- 可安装:通过浏览器提供的提示进入主屏幕,使用户可以“保留”他们认为最有用的应用,而无需麻烦应用商店
- 可链接:表示它们零摩擦,零安装且易于共享。URL的社会力量很重要。
从这些角度来看,可链接是本机应用程序以移动深度链接的形式从本机应用程序从Open Web导入的第一个特征。
但特别提到应有的组合新鲜 + 安装,因为它代表的Web平台在的主要优点之一本地的替代品。这里可安装的意思是它出现在您的主屏幕中。这并不意味着您需要通过下载和安装阶段。您在浏览过程中打开URL或发现服务就完成了:它出现在主屏幕中。
新鲜指的是常规网络的工作原理,提供即时加载和无缝更新。不需要您从YouTube的网络上安装更新,它会被部署并在您下次访问时使用。
我不是在谈论其余几点的好处,因为您是在要求差异,例如,重新参与是本机应用程序通过推送服务和通知已经拥有的功能,现在Web应用程序已经赶上了。
其他相关的关键问题是哪个平台更适合您的需求。如果您没有访问特殊的硬件功能,那么Web应该就足够了,并选择没有市场,专有生态系统的Web,并且可以确保一定程度的普遍存在和互操作性。
最后,我建议您从装有Chrome的手机上浏览www.flipkart.com。非常棒:没有错误,流畅的导航,类似应用的感觉。脱机,它将继续工作。该帖子的真实示例。将应用程序添加到主屏幕,下次打开时,体验会更好。
您可以看一下Firefox OS,以及将更多平台API引入标准Web 的示例(取得或多或少的成功)。