Android和iOS在新版本中助力HTML5
兩個(gè)***的移動(dòng)操作系統(tǒng),Android和iOS,有可能準(zhǔn)備在它們的***版本中為HTML5增加助力。Google從Android的核心組件中剝離了WebView,把它變成了一個(gè)可升級(jí)的組件,同時(shí),蘋果用WKWebView替代了過(guò)去的UIWebView,后者在混合應(yīng)用上有性能、穩(wěn)定性和功能方面的優(yōu)勢(shì)。
混合應(yīng)用和原生應(yīng)用類似。它們也是從Google Play或App Store上安裝,只不過(guò)它們是使用HTML、CCS、JavaScript之類的技術(shù)開(kāi)發(fā)的。瀏覽器引擎用于解析、運(yùn)行和顯示這些應(yīng)用,每個(gè)操作系統(tǒng)都為引擎導(dǎo)出了API與之交互。在Android下,這個(gè)引擎就是WebView,iOS下則叫WKWebView。開(kāi)發(fā)者可以在他們的應(yīng)用中嵌入Web內(nèi)容,以及訪問(wèn)那些一般的移動(dòng)網(wǎng)站無(wú)法訪問(wèn)的資源,比如攝像頭、文件系統(tǒng)和NFC等等。
WebView一直以來(lái)都是Android的核心組件,以前只有在操作系統(tǒng)升級(jí)的時(shí)候才會(huì)更新。由于Android版本的發(fā)布速度一般較慢,并且各個(gè)廠商之間的節(jié)奏又有所不同,不是所有的手機(jī)和平板電腦都能同時(shí)升級(jí)到***版本的(如果真要升級(jí)的話),這樣就導(dǎo)致了用戶無(wú)法使用***的功能,或受到安全漏洞的威脅。在KitKat發(fā)布后,Chrome開(kāi)發(fā)團(tuán)隊(duì)承認(rèn)了這個(gè)問(wèn)題,并且打算把瀏覽器引擎變成一個(gè)定期更新的組件。
從Android Lollipop開(kāi)始,有一個(gè)新功能叫可升級(jí)的WebView。顧名思義,現(xiàn)在這個(gè)WebView作為一個(gè)常規(guī)的app,能從Google Play上得到更新。這不僅保證了重要的安全更新能及時(shí)部署到設(shè)備上,也使得新的功能和API能及時(shí)推送給依賴WebView的應(yīng)用的開(kāi)發(fā)者們。
蘋果也在iOS 8中嘗試支持更多的HTML5功能。一件出了名的事就是用WKWebView替代了舊的引擎UIWebView。在以前的iOS版本中,混合應(yīng)用無(wú)法達(dá)到原生Safari應(yīng)用的JavaScript性能水平,因?yàn)樘O果限制了Safari的JavaScript引擎Nitro的使用,使UIWebView變得很慢。
現(xiàn)在有了WKWebView的API,在iOS 8上運(yùn)行的混合應(yīng)用可以利用和Safari瀏覽器一樣的優(yōu)化功能。基準(zhǔn)測(cè)試的結(jié)果顯示,在這些應(yīng)用中,JavaScript的速度是舊的UIWebView API的4.5倍。但是新的API有一個(gè)bug有可能破壞某些混合應(yīng)用,從beta 4開(kāi)始就有。
除了這個(gè)主要的變化,iOS 8也支持以下的HTML5功能:
· WebGL
· IndexedDB
· HTML模板
· 導(dǎo)航/高精度計(jì)時(shí)
· CCS形狀
· SVG片斷標(biāo)識(shí)符
你可查看這篇文章了解WKWebView的具體改進(jìn)細(xì)節(jié)。
本文鏈接:http://www.cocoachina.com/webapp/20141121/10277.html