首页 文章

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

提问于
浏览
88

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

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

2 回答

  • 11

    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版Chrome 52中whatwebcando.today的屏幕截图:

    What Web Can Do Today - Chrome 52 on Android

    硬件访问包括

    即将推出的硬件访问

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

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

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

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

    “最重要的一点是,虽然仍然存在WebGL比本机代码慢得多的领域,但总的来说,你可以获得非常好的性能,而且这种情况在未来会变得更好 . ”

    The gap has indeed been closing .

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

    来自PWA的类似本机的功能

    原生Android功能尚未提供给PWA

    • 访问指纹传感器(under development

    • 联系人,日历和浏览器书签访问权限(缺乏对这些内容的访问权限可被隐私用户视为feature

    • 警报

    • 电话功能 - 拦截短信或电话,发送短信/彩信,获取用户的电话号码,阅读语音邮件,拨打电话,无需拨号器对话框

    • 低级访问一些硬件功能和传感器:手电筒,大气压力传感器

    • 系统访问:任务管理,修改系统设置,日志

    Progressive Web Apps提供本机应用程序缺少的功能

    • discoverability - 搜索引擎可以轻松找到渐进式网络应用程序中的内容,但像StackOverflow这样的以内容为中心的本机应用程序赢得了't show among app store search results for content that it does offer access to, such as 383191 . This is a problem for communities like Reddit, which can' t,将其众多子社区作为单独的"apps"暴露给应用程序商店 .

    • linkability - 任何页面/屏幕都可以有直接链接,可以轻松共享

    • bookmarkability - 保存该链接以直接访问应用程序的视图

    • always fresh - 无需通过应用商店推送更新

    • universal access - 不受应用商店sometimes arbitrary policies或(非预期)geographic restrictions的约束

    • large data savings ,在具有昂贵和/或缓慢互联网接入的新兴市场中极为重要 . 例如,电子商务网站Konga cut data usage by 92% for the first load by migrating to a PWA .

    • low friction of distribution - 如果您的渐进式网络应用程序在线,则Android(和其他移动)用户已经可以访问它 .

    • 65.5% of US smartphone users don't download any new apps each month

    • PWA无需转到应用程序商店,搜索应用程序,单击安装,等待下载,然后打开应用程序 . Each of these steps loses 20% of the potential users.

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

  • 148

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

    渐进式Web应用程序的目标是扩展这些功能以涵盖最关键的案例 . 在这种情绪下,请查看Progressive Web Apps: Escaping Tabs Without Loosing Our Soul,您可以在其中找到渐进式Web应用程序应提供的列表:

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

    从这些观点来看,linkable是以mobile deep linking形式从Open Web本机应用程序导入的第一个特征之一 .

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

    Fresh指的是常规Web的工作方式,提供即时负载和无缝更新 . 您不会被要求从YouTube网站安装更新,它已部署,您下次访问时会使用它 .

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

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

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

    您可以查看Firefox OS以及将more platform APIs带入标准Web的示例(或多或少成功) .

相关问题