HTML5 并非真正跨平台,统一的企业级浏览器可能是解决方案

摘要

都说 HTML5 的杀手级武器是跨平台,但它只是理论上的跨平台。

编者注:本文是云适配公司的投稿。作者陈本峰是云适配公司创始人兼 CEO。原文有删改。


过去这些年,HTML5 几乎已经彻底改变了 PC 互联网甚至移动互联网的格局。

纵观 HTML5 的发展史,一波三折,有用户的需求在推动,有技术开发者的需求在推动,更有巨大的商业利益在推动。如今,随着 4G 的普及以及手机硬件性能的飞速发展,HTML5 一直被诟病的性能问题逐渐被淡化,HTML5 也逐渐被人们接受成为信息和应用的载体。过去的 2015 年,HTML5 的确得到蓬勃的发展,尤其在微信朋友圈的营销上。然而,HTML5 要走出微信朋友圈,在各种场景下得到广泛的使用,还有很长一段路要走。

接下来我们来分析一下 HTML5 面临的一些挑战。

HTML5 并非听上去那么完美

业界一直都说 HTML5 的杀手级武器是跨平台,意思是,相比原生 APP 要针对不同手机操作系统做开发,HTML5 只需一次开发,就可以在所有操作系统上运行。

HTML5 是唯一一个通吃 PC、Mac、iPhone、iPad、Android、Windows Phone 等主流平台的跨平台语言。Java 和 Flash 都曾梦想这个位置,但都梦断于 iOS。此时人们纷纷开始研究基于 HTML5 开发跨平台手机应用,很多人都认为,原生应用只是过渡,就像当年从 C/S 结构转变为 B/S 结构一样。而且学习 Objective-C 和 Java 很费劲,既然会网页开发,为何不试试 HTML5。html5.png

然而,HTML5 毕竟只是一个技术标准,所以跨平台确实跨平台,但只是理论上的跨平台。

在实际应用过程中,大家会发现各种浏览器之间存在各种各样的差异性,导致 HTML5 页面在不同浏览器上显示的效果不一致,于是要经过大量的兼容性测试和修复才能真正实现「一次开发,所有平台完美运行」的理想,而这样的工作量并不小。对此,大家可能有疑问,HTML5 不是国际标准么,浏览器都遵守 HTML5 国际标准来开发的话,不应该出现不一致啊?

其实,这里面有多方面的原因:

  1. HTML5 的功能是个巨大的集合,浏览器产商不可能在一个版本开发周期中实现所有的 HTML5 能力,每个版本都只能开发一小部分子集。不同的浏览器产商会根据自己对市场的判断以及公司的战略,制定自己的开发路线图,所以自然会出现不同浏览器支持的 HTML5 功能集合不一致;
  2. W3C 一直把制定的标准文档定义成「Recommendation(推荐)」,也就是说,HTML5 并不是一个强制的标准。如果开发者写的 HTML 网页不符合标准,浏览器依然能够显示。事实上,互联网上有 95% 以上的网页都是不符合 W3C 标准的。结果就是,网页中有大量的异常情况,需要浏览器自己去修复。如何修复不标准的网页并没有一个固定做法,所以不同浏览器产商都有自己的一套解决方式。这也导致了各个浏览器虽然都是按照相同的 W3C 来开发的,但是最后的代码算法是不同的,继而导致了显示结果不一致;20151105161817122.jpg(云适配公司创始人兼 CEO 陈本峰)
  3. 互联网是个高速发展的市场,每个浏览器产商都要为适应新的市场变化开发具有足够创新升级版本。然而向前创新和向后兼容往往是矛盾的,所以浏览器产商在新版本中可能会做出一些巨大的代码调整。然而,浏览器是安装在用户手机上客户端程序,用户有权利选择是否进行升级。这就导致了即使是同一个产商的浏览器,你还得为它的不同版本做相应的兼容性修复。这一点相信大家在 PC 时代的 IE 浏览器上都吃过很多苦头,每个前端开发者都需要为 IE6、IE7 等不同版本做出大量的工作;
  4. 今天的手机操作系统是个非常碎片化的市场。安卓的开发性为它带来了高速的市场覆盖,但同时也带来了极度碎片的版本分支。几乎每个手机产商都会做一些定制,以实现自己在市场上的差异化。小米有 MIUI、华为有 EMUI、三星有 TouchWiz 等等。手机操作系统自带的默认浏览器也会做相应的定制,因此导致 HTML5 网页在不同手机操作系统的默认浏览器上显示不一致。由于很多第三方 App 内嵌浏览器一般都直接调用了操作系统自带的浏览器内核,从而导致网页在了不同手机上显示效果不一样,这点在混合 App(Hybrid App)中体现尤为明显。

如何解决 HTML5 在实际应用中的兼容性问题?

上面提到了诸多 HTML5 不能真正跨平台的原因,可能很多朋友们就要问了,如何解决?其实解决 HTML5 在实际应用中的兼容性难题,真正实现 HTML5 的跨平台,有两个途径:

  1. 通过 HTML5 的底层框架来屏蔽不同浏览器的兼容问题,所有的 HTML5 应用在框架之上来开发。像国外的 Bootstrap、jQuery UI 等都是很好的 UI 框架,基于他们之上来开发可以减少大量的兼容性调试工作。当然,这些国外的 UI 框架都是针对国外的审美观、国外的主流浏览器和操作系统,国产的 Amaze UI 也是类似的框架,但是针对国内网民的样式喜好以及主流移动浏览器或带有浏览器功能的 App(比如微信)做了大量的调整优化;html5-games.jpg
  2. 通过让用户使用自有内核的固定浏览器,这样就不存在兼容多个浏览器或者操作系统的问题了。然而,对于普遍的大众网民,没有任何一个企业或者是组织强制大家使用哪一款浏览器。但是,在企业内部办公的场景中,这种方式是比较可取的。一方面,公司的员工数目有限,一般就几千人上万人,不像互联网好几亿网民,所以 IT 开发人员花大量时间去做兼容性测试和修复是一件投入产生比很低的事情,对公司效益没有任何帮助;另外一方面,市面上各种浏览器的安全能力参差不齐,让员工自由选择浏览器是一件风险很大的事情,极有可能会导致企业数据泄露或者木马入侵。因此让员工使用公司经过安全认证的固定浏览器,一方面大幅度减轻 IT 开发的工作量,另外一方面有效保障企业数据安全,事半功倍。

HTML5 作为一种开发语言,最终都是需要运行在浏览器上的。因此,要使 HTML5 的优势充分发挥在应用在移动办公方面,必须要有一个带自有内核并且专门针对企业的安全管理优化的浏览器。

不管怎样说,虽然 HTML5 跨平台的能力受限于操作系统的碎片化,仍然显得不完美,但是其天然的跨平台能力已经在很大程度上为开发者们带来了巨大的价值。原因不言而喻,对于开发者而言,除了 iOS,安卓,开发者为什么不愿意再开发 WP 版本,很多时候是因为工作量太大,除了版本适配,分辨率调整等,一旦有新版本推出,在原生 App 中开发者不得不等待多达两周时间去接受审核,跨平台在多屏时代给开发者非常痛苦的体验,人们都期待当年 Java 的一次编译处处运行的理想情况。而 HTML5 目前正在扮演这样一个开发者救星的角色,这里面只需要有一个统一的企业级浏览器就可以了。

最新文章

极客公园

用极客视角,追踪你不可错过的科技圈.

极客之选

新鲜、有趣的硬件产品,第一时间为你呈现。

张鹏科技商业观察

聊科技,谈商业。