HTML5和APP的部分区别

遇到很多人都不清楚HTML5做出来的APP到底是什么,大多数认为应该和原生APP拥有一样的体验以及移动特性,下面就以一张表格展示两者的不同,当然技术不断发展总有一天HTML5和原生APP的差异会越来越小,期待那一天的到来:

功能HTML5原生APP
加速传感器(摇一摇)部分支持支持
麦克风不支持支持
地理位置部分支持支持
地图支持支持
电子罗盘不支持支持
陀螺仪不支持支持
动画支持支持
视频播放支持支持
音频播放支持支持
3D效果部分支持支持
社会化分享(微博,微信等)支持支持

技术问题详解:

1.进程切换和互动
不管机器性能和网速怎么样,原生APP可以随意切换不同进行,而HTML5只能通过网页的跳转。
在原生APP中,进程的切换可能只需要250ms,而通过网页的跳转则可能需要两倍的时间。或许一个简单的切换动作,用户不会察觉什么,但是积累起来,那么用户会越来越感觉到应用的缓慢,从而会彻底的抛弃缓慢的应用。例如,原生APP的切换效果,很轻松流畅,给用户一种愉快的感觉;而HTML5的切换只能通过CSS3和JavaScript模拟出来,显然流畅性要差。
而进程间通信,例如我们经常需要在微博中添加图片,在原生APP中比较容易实现而且速度快,而用HTML5则比较麻烦。


2.原生APP能够监测外设的情况,而HTML5无法访问本地外设
原生APP可以随意监测、访问设备的外设,比如:USB接口,通讯录,录音设备等一些数据采集设备等等。同时一些作用的临时文件都可以存储在本机种,同时本机存储的文件也可以随意读取的。而HTML5是无法做到这些,只能通过保存COOKIE以及HTML提供的缓存机制来实现。


3.智能应用
通过语音操作,语音设别,复杂一些手势操作(例如摇一摇),这些在原生APP上轻松实现,而在HTML5上都是比较困难。
其实设备上提供的很多感应操作,例如陀螺仪,都是只能选择原生APP。


4.网页的快捷方式
HTML5没有原生APP的支持,是无法把打开指定网页的快捷方式放入启动栏或者桌面的。


5.网络状况
虽然HTML5的离线存储能够一定的解决网络延时问题,不过网络状况对于APP来说还是一个非常大的问题。不过比较核心的问题是,即使储存了全部网页显示的数据,JavaScript的执行效率还是没法和本地代码相提并论。