在Android上,Progressive Web Apps具有哪些功能与本地应用程序相反,反之亦然。


112

Google在2015年引入了一种新的方法来开发适用于Android的网络应用程序渐进式网络应用程序。可以创建一个看起来像本机应用程序的应用程序,将能够使用设备的硬件(例如摄像头和加速度计),接收推送通知,具有启动器图标,脱机工作,存储本地数据等。

在Android上,本机应用程序提供哪些功能而不支持渐进式Web应用程序,反之亦然。

Answers:


201

TL; DR-截至2017年2月,渐进式Web应用程序已足够强大,平台已将Twitter的所有移动网络流量都移至React PWA中

截至2016年8月,渐进式Web应用程序实际上提供了比通常认为更多的硬件访问。以下是我的Android版Chrome 52稳定版中whatwebcando.today的屏幕截图:

网络今天可以做什么-Android上的Chrome 52

硬件访问包括

即将进行的硬件访问

这些功能已在某些浏览器中实现或已经运行:

需要注意的另一个重要点是,Origin Trials Framework(在Chrome中实现)使制造商无需进行标准化过程即可公开和测试硬件(或软件)功能。例如,电话制造商可以公开用于读取压力传感器值的API,对其进行优化,然后将其提交给W3C。

除硬件访问外,本机应用程序还具有传统上采用的软件功能,现在可用于Web应用程序。

PWA也可以使用的传统本机功能

这些功能涵盖了许多用例,并且当今许多流行的本机应用程序都可以重写为PWA。以Slack为例。它的开源替代品Rocket.Chat正在构建PWA版本。有关更多PWA演示,请参见https://pwa.rocks

PWA中有类似本机的功能

PWA尚不具备Android本机功能

  • 访问指纹传感器(正在开发中
  • 联系人,日历和浏览器书签的访问权限(缺乏隐私的用户可以将其视为功能
  • 警报
  • 电话功能-截取SMS或电话,发送SMS / MMS,获取用户的电话号码,阅读语音邮件,在没有Dialer对话框的情况下拨打电话
  • 低级访问某些硬件功能和传感器:手电筒,大气压传感器
  • 系统访问:任务管理,修改系统设置,日志

渐进式Web应用程序提供了本机应用程序所缺少的功能

  • 可发现性 -搜索引擎可以轻松找到渐进式Web应用程序中的内容,但诸如StackOverflow之类的以内容为中心的本机应用程序不会在其可访问的内容的应用商店搜索结果中显示,例如“ pwa vs.native”。对于像Reddit这样的社区来说,这是一个问题,它们无法将其众多子社区作为单独的“应用程序”公开给应用程序商店。
  • 可链接性 -任何页面/屏幕都可以具有直接链接,可以轻松共享
  • 可收藏性 -保存该链接以直接访问应用程序的视图
  • 始终新鲜 -无需浏览应用商店即可推送更新
  • 通用访问权限 -不受应用商店的限制,有时是任意政策或(非预期的)地理限制
  • 节省大量数据,这对于昂贵且/或互联网访问速度缓慢的新兴市场极为重要。例如,电子商务网站Konga 通过迁移到PWA,将首次使用的数据使用量减少了92%
  • 发行摩擦低 -如果您的渐进式Web应用程序在线,则Android(和其他移动设备)用户已经可以使用它。

最后的注意事项:PWA以相同的代码库在台式机和大多数移动设备上运行。在桌面环境(ChromeOS,以及后来的 Mac和Windows)上,它们以与其他应用程序相同的方式启动,并在常规应用程序窗口(无浏览器选项卡)中运行。


1
一个小小的注意事项:使用“ Android Instant Apps”,您可能会认为Native Apps(至少在Android上)不再缺乏可链接性。
shawnjan

好回答丹!PWA是否可以访问主机设备的电话号码?
亚历山大·米尔斯

@Alexander:否(请参阅“电话功能”项目符号),因为这将侵犯隐私权。考虑改用自动填充
Dan Dascalescu


12

本机应用程序的主要优点是,它们可以访问平台可以提供的所有本机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 的示例(取得或多或少的成功)。


PWA实际上可以访问摄像机以及多个传感器
Dan Dascalescu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.