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

Mic*_*ael 110 firefox android google-chrome progressive-web-apps

2015年,Google推出了一种新的Android开发网络应用程序方法:渐进式网络应用程序.可以创建一个看起来像本机应用程序的应用程序,可以使用设备的硬件,如摄像头和加速度计,接收推送通知,具有启动器图标,离线工作,存储本地数据等.

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

Dan*_*scu 191

TL; DR - 截至2017年2月,Progressive Web Apps是一个功能强大的平台,Twitter已将其所有移动网络流量转移到React PWA.

截至2016年8月,Progressive Web Apps实际上提供了比通常想象的更多的硬件访问.这是我在Android 52上的Chrome 52稳定版中的whatwebcando.today的屏幕截图:

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

硬件访问包括

即将到来的硬件访问

这些功能正在实现或已在某些浏览器中使用:

另一个需要注意的重点是,Origin Trials Framework(在Chrome中实现)使制造商能够公开和测试硬件(或软件)功能,而无需经历标准化过程.例如,手机制造商可以公开API以读取压力传感器的值,对其进行细化,然后将其提交给W3C考虑.

除了硬件访问之外,还有传统上由本地应用程序使用的软件功能,现在可用于Web应用程序.

PWA也可以使用传统的原生功能

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

来自PWA的类似本机的功能

原生Android功能尚未提供给PWA

  • 访问指纹传感器(正在开发中)
  • 联系人,日历和浏览器书签访问权限(缺乏访问权限可被隐私用户视为一项功能)
  • 警报
  • 电话功能 - 拦截短信或电话,发送短信/彩信,获取用户的电话号码,阅读语音邮件,拨打电话,无需拨号对话
  • 低级访问一些硬件功能和传感器:手电筒,大气压力传感器
  • 系统访问:任务管理,修改系统设置,日志

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

  • 可发现性 - 搜索引擎可以轻松找到渐进式网络应用程序中的内容,但像StackOverflow这样以内容为中心的本机应用程序不会在应用程序商店搜索结果中显示它提供访问权限的内容,例如"pwa vs. native".对于像Reddit这样的社区来说,这是一个问题,因为Reddit无法将他们众多的子社区作为单独的"应用"暴露给应用商店.
  • 可链接性 - 任何页面/屏幕都可以有直接链接,可以轻松共享
  • bookmarkability - 保存该链接以直接访问应用程序的视图
  • 永远新鲜 - 无需通过应用程序商店推送更新
  • 通用访问 - 不受应用程序商店的限制,有时是任意策略或(非预期的)地理限制
  • 节省大量数据,在新兴市场中极为重要,因为互联网接入昂贵且速度较慢.例如,电子商务网站Konga 通过迁移到PWA将第一次加载的数据使用量减少了92%.
  • 低分配摩擦 - 如果您的渐进式网络应用程序在线,它已经可供Android(和其他移动)用户访问.

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


Sal*_*lva 12

本机应用程序的主要优点是它们可以访问平台可以提供的所有本机API(联系人,相机闪存,SMS,电话,网络,蓝牙,传感器,原始套接字......),而渐进式Web应用程序无法(尚未)因为它们受标准Web功能的限制.

渐进式Web应用程序的目标是扩展这些功能以涵盖最关键的案例.在这种情绪下,看一下Progressive Web Apps:逃避标签而不放松我们的灵魂,您可以在其中找到渐进式Web应用程序应提供的列表:

  • 响应:适合任何形状因素
  • 独立于连接:与服务工作者一起逐步增强,让他们脱机工作
  • 类似App的交互:采用Shell + Content应用程序模型来创建appy导航和交互
  • 新鲜:由于服务工作者更新过程,透明地始终保持最新状态
  • 安全:通过TLS(服务工作者要求)提供服务以防止窥探
  • 可发现:由于W3C清单和服务工作者注册范围允许搜索引擎找到它们,可以识别为"应用程序"
  • 可重新参与:可以访问操作系统的重新参与UI; 例如推送通知
  • 可安装:通过浏览器提供的提示进入主屏幕,允许用户"保留"他们认为最有用的应用,而无需应用商店的麻烦
  • 可链接:意味着它们是零摩擦,零安装且易于共享.URL的社交能力很重要.

从这些观点来看,linkable是Open Web中本机应用程序以移动深度链接形式导入的第一个特征之一.

但特别值得一提的是组合新鲜 +可安装,因为它代表了Web作为本地替代品平台的主要优势之一.这里可安装意味着它出现在主屏幕中.这并不意味着您需要通过下载和安装阶段.您在浏览时打开URL或发现服务并完成:它出现在主屏幕中.

Fresh指的是常规Web的工作方式,提供即时加载和无缝更新.你是不是要求从YouTube的网站上安装更新时,它被部署和你你访问它的下一次会消耗它.

我不是在谈论剩余点的好处,因为你要求区别,例如,重新参与是本机应用程序已经通过推送服务和通知已经拥有的东西,现在Web应用程序已经赶上了.

其他相关和关键问题是哪个平台更适合您的需求.如果您没有访问特殊的硬件功能,那么Web就足够了,选择不受市场,专有生态系统影响的网络,顺便说一句,您可以确保某种程度的普遍性和互操作性.

作为最后的笔记,我建议您通过Chrome浏览器浏览www.flipkart.com.它非常棒:没有错误,流畅的导航,应用程序般的感觉.离线,它将继续工作.这篇文章的一个真实世界的例子.将应用程序添加到主屏幕,下次打开它时,体验会更好.

您可以查看Firefox OS以及将更多平台API引入标准Web 的示例(或多或少成功).