PWA 和 Hybrid App 的技术差异

Technical differences between PWA and Hybrid App

PWA 和混合应用程序之间有什么区别?之前有人问过这个问题,但我还没有找到正确的答案。

我知道 PWA 在浏览器中运行,您可以从应用商店获得混合应用。

但两者都使用 JavaScript 与 HTML 和 CSS,并且都启用了离线支持,我可以访问相机和本地存储等本机功能。

我将 PWA 添加到主屏幕后,它会使用 Web 视图来呈现应用程序吗?混合应用程序也使用 Web 视图,那么 PWA 和混合应用程序之间到底有什么区别?

有了 Ionic,我什至可以为 pwa 和混合应用程序使用完全相同的代码...

渐进式应用程序

  1. 如今,这些应用仅适用于 Opera、Chrome 和三星移动浏览器。然而,这些浏览器仅占移动浏览器市场的不到一半。
  2. 在某些设备上,某些功能将无法使用。例如,iOS 设备上的通知将不起作用。
  3. 在某些应用程序中,相机、指纹扫描仪和 GPS 可能无法正常工作或出现故障。

基于 Cordova/Ionic 的混合应用程序

  1. 在多个平台上高效地制作混合应用程序 运行 并非易事。在某些情况下,它的成本可能与 运行ning 本机应用程序几乎相同。费用将取决于您希望获得原生应用体验的程度。
  2. 由于这些应用程序将使用类似浏览器的组件启动,因此它们的好坏取决于它们所在的组件 运行。早些时候,Google 和 Apple 在 WebView 上没有达成一致。虽然它已经有了很大的改进,但它的效率不如 运行 本地应用程序。

大致如下:

  • Web 应用程序 (PWA) 只是一个网站,它使用清单文件等声明某些功能,这可以获得一些特殊处理(例如利用服务工作者、注册 Web 通知、完整屏幕等如果目标浏览器支持它)。作为一个网络应用程序,它的 "privileges" 在系统级别上非常有限(例如持久性配额等)

  • 混合应用程序(例如 Cordova)是一种二进制代码,它是 "wrapping" 您的网络代码,并通过插件公开某些 "native" SDK 功能。您也可以编写自己的插件,理论上可以通过这种方式访问​​任何本机 SDK API。但是由于您的主要应用程序代码仍然是在 webview 内部运行的网络应用程序,它仍然有很多性能等方面的损失。但至少您可以获得存储等方面的东西。

  • 本机应用程序是使用目标平台的 SDK 的二进制构建。在 理论让您最大限度地获得能力和性能 为每个平台编写单独代码的费用。

有道理吗?