一、H5页面和原生页面和优劣势分析
优势
- H5可跨平台使用,开发成本相对低;
- H5可随时上线就更新版本,适合快速迭代,一个功能做好了验收后立马就能安排上线;App则需要用户主动下载更新,尤其iOS审核严格,需要测试过关,否则影响用户;
- 在功能调整或内容的运营上很灵活;
- 目前一些三方产品全部都是H5页面,但是重要的部分还是Native。
劣势
- 由于安全沙箱机制,H5目前基本无法将数据存储在本地(文件)。
访问文件系统常会涉及到安全和用户隐私保护的问题。
每当用户需要上传数据,比如输入,选择,传照片等,页面的延迟会影响使用的流畅性;而APP可以本地存储,运行速度更快,可离线操作或者访问本地资源。
- H5在webview中展示,性能相对较低。
比如动画有很多种,比如侧边栏菜单的滑入滑出、元素的响应动画、页面切换之间的过场等等,在H5之下的众多实现方法都没有办法达到纯原生的性能。
大面积或过场使用css3动画会让app低端手机体验非常差。最好的选择一般是通过框架调用底层的动画,但不管怎么样等于在原来的代码上包上了一层,性能还是不可避免的受到影响。
比如在NativeApp上,一个类似页面滑动切换的效果,基本不会感受到延迟,你手指只要开始滑动,页面就无缝的跟着滑动,但在Web上,大家应该都经常看微信里的各种H5的花哨分享页面吧,那滑动就不太流畅。
网络情况:无法判断弱网或断网情况。网络状态不好的时候卡到哭。
- 不能调用移动硬件设备的功能。
APP能够调用移动硬件设备的底层功能。
比如使用定位功能:如果需要用到GPS定位功能,以前只能使用原生的API来查看用户的位置信息,但现在大多数的主流浏览器上都嵌入了W3C Geolocation API。安装了WebKit的设备或是配置了Opera或Mozilla浏览器的设备,均可以获取用户的位置信息。这在技术上已经没有太大的困难,然而却受到隐私保护条例的限制。加入定位功能,意味着给网站引入了一些敏感信息,可能会导致严重的后果。而原生app的位置信息必须经过用户授权,排除了隐患。而且利用GPS定位精度较高。
比如使用摄像头:如果需要用到摄像头功能,原生开发者能够简化拍照的过程,直接在客户端对照片做一些处理,只有需要的时候才上传服务器。W3C正在开发一个访问摄像头的API,但现在还没有将这部分工作正式整合到浏览器中。
二、真机体验
个人主观感受:
Native:95% + 流畅度
H5/Hybird:70%流畅度