iOS与Android中webview的css适配

无论是iOS还是Android,利用webview为基础,html5+css3来做app已经十分广泛.而优点也十分明显(之前一片文章中提到过)。

个人认为,这种app开发中存在2个大问题

1. js执行效率及内存泄漏问题(问题比较大,需要逐步探索优化)

2. css适配问题

这里主要记录下自己实践过的css适配问题,以备以后调研及开发使用

css适配

1. 屏幕像素值适配(不常用,需要配合密度来适配)

这种情况可在请求页面时代入参数,分辨率及密度值,由服务器端决定吐不同css,可以解决全部适配问题

最近在android适配中发现新问题,

三星 N7000(2.3.6和4.0系统显示也不一致;4.0会把小css显示大,2.3.6会显示比4.0小),2.3.6是刷入的系统

2. 实际页面像素值适配(常用)

第二种在应用时也有不同方式

a. 根据document.width,加载不同css

b. meta,根据不同device-width与device-height加载不同css

方式a,比较好用,可以解决全部适配问题,但是需要加入脚本,实时判断;css加载慢时会导致屏幕闪动效果明显

方式b,android会出现第一次页面加载时css加载不对的情况,至今没找到解决办法,各位谁有解决方法可以指教

css文件:

css文件可区别编写

ios:2套;一套小分辨率的,主要适用iphone3GS之前的和ipod touch;大分辨率主要应用在iphone4之后的及ipad上。大小2套之间总体差距为1倍,但细节会有调整。

重要问题:ios webview有一个属性会导致横竖屏旋转时缩放页面,此属性需要关闭(具体怎么做去问ios开发人员);如果此属性不关闭,需要css中适配(横屏orientation:landscape ,竖屏orientation:portrait),工作量会成倍增长。

android:3套;分别适配屏幕宽和高<500,宽和高都>720及其他

另,最好能够保持sdk的方向,如果可以横竖转换,页面中不要有拖拽相关的组件。

附分辨率及代表机型:

320*480
代表机型 IPHONE1,touch


360*640
代表机型 诺基亚5230

480*640
代表机型 多普达钻石

480*800
代表机型 三星I9000

640*960
代表机型 IPHONE4

540*960
代表机型 HTC G14

768*1024
代表机型 ipad2

720*1280
代表机型 三星I9250

800*1280
  但是js获取的宽高是400×640
代表机型 三星 N7000

1536*2048
  但是js获取的宽高是768×1024
代表机型 ipad3

1136×640
  但是js获取的宽高是320×568
iphone5,touch5

你可能感兴趣的:(iOS与Android中webview的css适配)