行业动态

H5页面加入到原生APP有什么效果


H5和原生APP到底哪个更有利于软件的发展?这是很多人都存在的疑惑,究竟是继续做一个复杂的原生APP还是向相对简单的H5转型。一个企业为了谋求发展究竟需要往哪方面发展是最有利的?

我现在项目现在用的就是:Andriod和IOS相当于容器, 主要复杂的业务逻辑还采用原生,已经有的子模块 需要快速集成进来,或者需要快速上线的模块,原生组没有人力,所有选择了集成H5,只要写一套代码就可以实现在Andriod、ios甚至微信里运行。不过我觉得,H5比较适合活动页,交互少的页面。含有复杂的逻辑的话,特别是需要跟壳交互很多(恶心的后退逻辑,判断版本号,隐藏头部),我建议后期还是要替换成原生。

所以:H5的优点显而易见。上的快,成本低,发布版本也不需要走审核。就这个成本问题和很快就能上问题就吸引项目老大了,再加上每次需求宣讲,产品要快点上,原生组推锅,我们只能当接盘侠了,毕竟这个模块本来就在我们这。

H5的缺点很多,最主要是性能问题,第一:肯定做不到原生那么流畅。动画这块,没有原生流畅,效果很难模拟,然后动画的优化(translate3d开启GPU渲染等)本地缓存这快,不优化的话,js、css、img每次打开都要重新获取,体验差且耗流量。所以图片多的话建议缓存到本地 第二:网络问题,一断网就呵呵了,只能依靠壳检测网络,如果页面打开后断网,h5不知道已经断网了第三:功能问题,很多系统的功能无法调用,必须app壳给我们提供调用的接口,比如硬件摄像头、陀螺仪、麦克风等硬件支持较差,频繁调用这些硬件。

爽了原生开发者,给H5开发的困难:第一:调试困难,不像web里调试那么方便,调试工具可选fiddler。我曾经使用新特性localstorage,无奈壳不支持啊,然后各种和原生那边人联调,恶心的一笔。最坑的是兼容性问题。各种想不到,那次最后已经调成功了,发现个缺陷坑爹,登录某个账号就会出现问题,甚至页面打不开换手机也不行,就那个账号异常,最后发现兼容性问题,页面里使用了iframe。是这样的,作文列表很长使用下拉分页,然后点击某一条进入作文全文页面,这个是iframe嵌入的,为什么选择使用iframe呢,因为壳不支持缓存页面信息,比如列表我滑到第100页,然后跳转作文全文页面,后退回来还要在这个位置,如果web端很简单,浏览器会帮你记住。但在这个H5里不行,所以我只能用iframe模拟,每次点击后请求数据再渲染iframe。问题在这,为啥有的账号就是异常呢,其它都好的,原来还要先清空再填充。按理不会存在问题的。继续说兼容性,andriod和ios很多表现不同,ios可坑了,比如事件委托。还做过h5里一个按钮的拖拽,性能差不说,在ios里位置也有问题。再比如fixed支持不好,再比如有时候一个头部莫名其妙不出现。

微信支付宝里面都有不少的H5页面,没接触到这些可能根本不知道,因为不少的H5页面都优化的很棒,无论是在交互还是页面布局,根本看不出来卡顿之类的。能在一个完整的应用你集成如此之多的子应用,我们不得不认为H5页面是行之有效的,所以小编建议:复杂的用原生,经常修改活动的用H5,这种方式就比较适合改变。