记一笔

iOS上用UIWebView,然后用网页来干应用的活,此时会有很多小坑。
如果这个页面还要顺带坚固安卓的话,这个坑就更多了。
即便在HTML5协议已经立下的今天,坑依然夺得不像话。
这里就稍微记一点。


1,input的line-height不能小于1.5

虽然safari中,你设置input的line-height为一个小于1.5的值也没问题,但在iOS的UIWebView上,所有比1.5小的line-height都无效。
至少,iOS8.3是这样的。

2,input在初始状态没有内容时的光标高度,和有内容但被删空时的光标高度,是不一样的

这个问题总觉得很无厘头,但事实就是这样。。。所以导致UI上怎么调都是个悲剧。。。
另,先设置内容然后过段时间(比如setTimeout)后通过代码来清除内容,得到的光标高度依然是那个错误的初始状态为空时的光标高度。。。
人家就是这么任性。

3,如果你用的是系统键盘,然后键盘颜色设为dark,接着在键盘不显示的情况下在UIWebView的某个组件上弹出键盘,你会欣喜地发现键盘的颜色好奇葩

这应该是一个系统BUG。。。
只有在UIWebView上才会如此。
必须在别的UIView上弹出键盘,并且在键盘弹出动画(如果有)做完后,再将键盘焦点定位到UIWebView中某个你要focus的html组件上,键盘的颜色才正常。
至少在iOS8.3上就是这么任性。


当然,安卓上也有坑。
安卓自带的WebView我就不吐槽了。
使用CrossWalk提供的chromium内核的WebView时,也会遇到各种问题。
比如下面这种情况:


1,某些键盘事件收不到,或者收到但信息有问题

比如,某些组件上没有composing相关的部分事件。
有些组件上,keyDown或者keyUp中的event.which是错的。
然后只能空流泪了。。。

你可能感兴趣的:(记一笔)