iOS上用UIWebView,然后用網(wǎng)頁來干應(yīng)用的活,此時(shí)會(huì)有很多小坑。
如果這個(gè)頁面還要順帶堅(jiān)固安卓的話,這個(gè)坑就更多了。
即便在HTML5協(xié)議已經(jīng)立下的今天,坑依然奪得不像話。
這里就稍微記一點(diǎn)。
1,input的line-height不能小于1.5
雖然safari中,你設(shè)置input的line-height為一個(gè)小于1.5的值也沒問題,但在iOS的UIWebView上,所有比1.5小的line-height都無效。
至少,iOS8.3是這樣的。
2,input在初始狀態(tài)沒有內(nèi)容時(shí)的光標(biāo)高度,和有內(nèi)容但被刪空時(shí)的光標(biāo)高度,是不一樣的
這個(gè)問題總覺得很無厘頭,但事實(shí)就是這樣。。。所以導(dǎo)致UI上怎么調(diào)都是個(gè)悲劇。。。
另,先設(shè)置內(nèi)容然后過段時(shí)間(比如setTimeout)后通過代碼來清除內(nèi)容,得到的光標(biāo)高度依然是那個(gè)錯(cuò)誤的初始狀態(tài)為空時(shí)的光標(biāo)高度。。。
人家就是這么任性。
3,如果你用的是系統(tǒng)鍵盤,然后鍵盤顏色設(shè)為dark,接著在鍵盤不顯示的情況下在UIWebView的某個(gè)組件上彈出鍵盤,你會(huì)欣喜地發(fā)現(xiàn)鍵盤的顏色好奇葩
這應(yīng)該是一個(gè)系統(tǒng)BUG。。。
只有在UIWebView上才會(huì)如此。
必須在別的UIView上彈出鍵盤,并且在鍵盤彈出動(dòng)畫(如果有)做完后,再將鍵盤焦點(diǎn)定位到UIWebView中某個(gè)你要focus的html組件上,鍵盤的顏色才正常。
至少在iOS8.3上就是這么任性。
當(dāng)然,安卓上也有坑。
安卓自帶的WebView我就不吐槽了。
使用CrossWalk提供的chromium內(nèi)核的WebView時(shí),也會(huì)遇到各種問題。
比如下面這種情況:
1,某些鍵盤事件收不到,或者收到但信息有問題
比如,某些組件上沒有composing相關(guān)的部分事件。
有些組件上,keyDown或者keyUp中的event.which是錯(cuò)的。
然后只能空流淚了。。。