2015年,谷歌推出了一种新的Android Web应用程序开发方法:渐进式网络应用程序。可以创建一个看起来像原生应用程序的应用程序,能够使用设备的硬件如相机和加速计,接收推送通知,有一个启动器图标,在离线状态下工作,存储本地数据等等。
在Android上,原生应用程序提供哪些渐进式Web应用程序不支持的功能,反之亦然。
在Android上,原生应用程序提供哪些渐进式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)中,它们与其他应用程序以相同的方式启动,并在常规应用程序窗口中运行(不是浏览器标签页)。
从这些要点中,可链接性是原生应用程序从开放网络导入的第一个特征,以移动深度链接的形式呈现。
但特别值得一提的是组合词“新鲜”+“可安装”,因为它代表了Web作为平台相对于本地应用程序的主要优势之一。这里的“可安装”意味着它会出现在您的主屏幕上。这并不意味着您需要经历下载和安装阶段。你打开一个URL或者在浏览时发现一个服务,就完成了:它会出现在你的主屏幕上。另一个相关且关键的问题是,哪个平台更适合您的需求。如果您没有访问特殊的硬件功能,Web 应该足够了。选择 Web,您可以摆脱市场、专有生态系统,并且可以确保某种程度的普及性和互操作性。
最后,我建议您使用 Chrome 手机浏览 www.flipkart.com。它非常棒:没有漏洞,导航流畅,感觉像应用程序。离线状态下,它仍然可以正常工作。这是真实世界中那篇文章的一个很好的例子。将应用添加到主屏幕,下次打开时体验会更好。
您还可以查看 Firefox OS,它是将 更多平台 API 带到标准 Web 的一个例子(成功与否不一定)。