Android和iOS在新版本中助力HTML5
英文原文:Android and iOS Go HTML5 Friendly With Their Latest Releases
两个最流行的移动操作系统,Android 和 iOS,有可能准备在它们的最新版本中为 HTML5 助一把力。Google 从 Android 的核心组件中剥离了 WebView,把它变成了一个可升级的组件,同时,苹果用 WKWebView 替代了过去的 UIWebView,后者在混合应用上有性能、稳定性和功能方面的优势。
混合应用和原生应用类似。它们也是从 Google Play 或 App Store 上安装,只不过它们是使用 HTML、CCS、JavaScript 之类的技术开发的。浏览器引擎用于解析、运行和显示这些应用,每个操作系统都为引擎导出了 API 与之交互。在 Android 下,这个引擎就是 WebView,iOS 下则叫 WKWebView。开发者可以在他们的应用中嵌入 Web 内容,以及访问那些一般的移动网站无法访问的资源,比如摄像头、文件系统和 NFC 等等。
WebView 一直以来都是 Android 的核心组件,以前只有在操作系统升级的时候才会更新。由于 Android 版本的发布速度一般较慢,并且各个厂商之间的节奏又有所不同,不是所有的手机和平板电脑都能同时升级到最新版本的(如果真要升级的话),这样就导致了用户无法使用最新的功能,或受到安全漏洞的威胁。在 KitKat 发布后,Chrome 开发团队承认了这个问题,并且打算把浏览器引擎变成一个定期更新的组件。
从 Android Lollipop 开始,有一个新功能叫可升级的 WebView。顾名思义,现在这个 WebView 作为一个常规的 app,能从 Google Play 上得到更新。这不仅保证了重要的安全更新能及时部署到设备上,也使得新的功能和 API 能及时推送给依赖 WebView 的应用的开发者们。
苹果也在 iOS 8 中尝试支持更多的 HTML5 功能。一件出了名的事就是用 WKWebView 替代了旧的引擎 UIWebView。在以前的 iOS 版本中,混合应用无法达到原生 Safari 应用的 JavaScript 性能水平,因为苹果限制了 Safari 的 JavaScript 引擎 Nitro 的使用,使 UIWebView 变得很慢。
现在有了 WKWebView 的 API,在 iOS 8 上运行的混合应用可以利用和 Safari 浏览器一样的优化功能。基准测试的结果显示,在这些应用中,JavaScript 的速度是旧的 UIWebView API 的 4.5 倍。但是新的 API 有一个 bug 有可能破坏某些混合应用,从 beta 4 开始就有。
除了这个主要的变化,iOS 8 也支持以下的 HTML5 功能: