将一个App做成网页版主要是为了让用户能够在电脑上或者没有安装该App的设备上使用该App的功能。有些App为了解决这一问题会开发和推出对应的Web应用,这些Web应用在功能、性能和使用体验上都与原本的App保持一致。下面将介绍两种将App做成Web应用的方式。
## 一、混合应用
混合应用是指在原生App中通过WebView加载Web页面来实现功能的一种应用形态。简单来说,就是在App中内嵌了一个内置浏览器,用户访问Web页面实现App的功能。混合应用是目前将App做成Web应用的主要方式。
![image-20210523000656846](https://i.loli.net/2021/05/23/VR4D7K8CoH5Sqlx.png)
具体实现可以分为以下三步:
1. 与Web端的后台进行交互,通过API请求将数据传递到App内。
2. Web部分使用语言例如JavaScript、HTML、CSS等编写,在浏览器中显示,并与App部分进行通信。
3. App部分使用跨平台框架,例如React Native、Weex等,将JavaScript代码编译成原生的、与平台相关的代码,以达到跨平台集成的目的。
混合应用的优缺点:
**优点:**
1. 与原生App相比,开发成本更低,同时开发周期也更短。
2. App与Web端交互的方式比较简单,对于小型项目足够。
3. 对于一些只适合使用Web技术编写的模块可以优先选择混合应用方案。
**缺点:**
1. 性能较原生App相比较慢。
2. 对于一些较复杂的应用,无法达到原生App的用户体验。
3. 对于涉及到网页加载的应用会存在快速加载,可靠性不高的问题。
## 二、PWA
PWA(Progressive Web App)是Web应用和移动应用之间的中间状态,是将Web应用多个特性结合到一起,弥补了原生应用与Web应用之间的差距。简单来说,PWA是一种类似于网页版的App,它不需要下载安装,通过网页即可使用,同时能够做到类似于原生App的交互和使用体验。
![image-20210523001406331](https://i.loli.net/2021/05/23/iWpMsySEvUf6zcb.png)
具体实现可以分为以下三步:
1. Web App Manifest,Manifest是一种JSON格式文件,提供一些关于Web应用的基本信息,如应用的名称、图标、主题色等。通过这个文件,浏览器得知Web应用需要安装,并将之保存到设备的主屏幕上。
2. Service Worker,Service Worker是一个脚本文件,它运行在运行在浏览器的后台进程中,实现了缓存和离线访问等功能。
3. App Shell,是一种将核心应用程序文件缓存为静态文件,作为应用程序加载的骨架,从而提高应用程序的性能。
PWA的优缺点:
**优点:**
1. PWA能够提供更好的用户体验,具有快速启动、卓越的性能、内存占用少、交互性好等优点。
2. PWA和原生应用一样能够提供离线使用功能,即便在离线环境下,用户仍可以访问应用程序。
3. PWA能够保持APP与网页之间的紧密关系,通过升级PWA,即可更新整个Web应用。
**缺点:**
1. 部分先进特性可能难以在所有浏览器上兼容。
2. 当用户第一次打开页面时,需要消耗一定的流量,这可能会压缩用户体验。但这可以通过吸引更多用户来破解。
3. 为了提供类似本地通知、调用摄像头等功能,PWA需要经过浏览器的授权。
综上所述,将App做成Web应用有两种主要的方式:混合应用和PWA。用户可以根据自己的业务需求来选择实现方式。选择混合应用方案,优势在于开发成本低,同时开发周期也较短,而选择PWA方案,则能够提供良好的用户体验并具备离线访问等优点。