webview相关知识点搜集

-webkit-box-shadow和text-shadow在Android 2.3 webview上,模糊半径(blur)值不能为0px或省略。

这个问题倒是不大,box-shadow本身是较耗性能的,而跑2.3的Android设备又大都比较低端,所以在一些非必要的场景下,本属性不生效也未尝不是一种选择。在一些必要的地方,保证blur值不为0px即可,比如设为1px,与0px效果差异不大,大多数情况下都可以接受。另一方面,4.0之后已经支持不带-webkit-私有前缀的box-shadow了,所以为了把这种妥协带来的影响降到最低,可以在这条声明后面再写一条不带私有前缀的声明,blur值可为0px或省略,2.3只支持带有私有前缀的box-shadow,它不会被影响。

border-radius 在Android 2.3 webview上,值不能为百分比形式。

Android 2.x webview不支持canvas的toDataURL()方法。

这也意味着我在《使用localStorage选择性缓存图片》一文中提到的方法,不能正常工作于Android低版本内置浏览器。

Android 2.3及以下 webview不支持svg。

-webkit-background-size 在Android 2.3及以下 webview 中不能只写一个值。

Android 4.4之前的webview中,::after及::before伪对象不支持transition 。

android 4.4+移除了webview的文件上传功能。

webkit内核中的一些私有的meta标签:

<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0" name="viewport" />
<meta content="yes" name="apple-mobile-web-app-capable" />
<meta content="black" name="apple-mobile-web-app-status-bar-style" />
<meta content="telephone=no" name="format-detection" />
<meta content="email=no" name="format-detection" />

去除iOS和Android中的输入URL的控件条:setTimeout(scrollTo,0,0,0)(这句代码必须放在window.onload里才能够正常的工作,而且你的当前文档的内容高度必须是高于窗口的高度时,这句代码才能有效的执行)。

关闭iOS中键盘自动大写:移动版本webkit为input元素提供了autocapitalize属性,通过指定autocapitalize=”off”来关闭键盘默认首字母大写。

可以使用 Weinre 调试。

使用touch事件时,android和ios对touchend的响应处理方式不一致,比如在a元素上使用touchend触发一个弹出层显示,在android上面的浏览器手指在a元素上做滑动操作,然后手指离开,结果不会触发 touchend事件,同样的操作在ios上会触发touchend。

ios6修复了css position:fixed 1像素抖动的bug,不过引出另一个bug:当给指定元素添加 position:fixed时首次加载页面完成后,滑动整个网页,添加此样式的元素会跟随页面滚动(目的是固定此元素)。

为其元素添加如下css属性即可:-webkit-transform:translate3d(0,0,0)(具体原因不知)。

IOS -webkit-touch-callout,长按诸如链接的目标对象时,是否允许呼出默认的popOver,当前选择值包括:none:不呼出弹窗框 ;inherit:可以呼出弹窗框。

IOS -webkit-user-select,是否允许用户选择元素的内容,选择值包括:auto:用户可以选择元素内的内容 ;none:用户不能选择任何内容;text:用户只能选择元素内的文本。

blog comments powered by Disqus