flexible.js移动端适配安卓高分辨不兼容问题

根据网上找到的解决办法,对于安卓设备,把dpr=1改为当前设备的dpr

if (!dpr && !scale) {
        if (isIPhone) {
            // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案
            if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {
                dpr = 3;
            } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){
                dpr = 2;
            } else {
                dpr = 1;
            }
        } else {
            // 其他设备下,仍旧使用1倍的方案
            // dpr = 1;
           // 其他设备下,改为使用设备当前的dpr
            dpr = devicePixelRatio;
        }
        scale = 1 / dpr;
    }    

这时候会不会发现有些安卓机可以正常显示,有些安卓机显示样式反而特别小呢?其实有一点一定要注意,在代码中,我们可能针对不同dpr的设备设定了不同的样式,比如图片、宽高、字体大小等,这时候就要考虑到安卓可能的dpr了,否则这些针对性的样式必然会按默认的dpr=1的样式来展示的。比如下面是我默认写的font-size

目前只是测了一部分安卓机,没有出现问题,dpr=2.75 是 小米 mix,dpr=4 是三星s6 edge ,我看网上安卓应该还有dpr=1.5的情况,目前我还没遇到。所以一定要写多种方案,否则,安卓的样式真的就跪 了…………………………

 

这里有一片文章写的比较好,可以推荐阅读:http://blog.csdn.net/a0405221/article/details/78913714       

https://www.cnblogs.com/ling-du/p/4623623.html

http://mdsa.51cto.com/art/201507/484215_2.htm

 

在测试过程中还发现一个问题,vivo打不开我们的手机端网站………………换任何一个浏览器都不行……                                                       

posted @ 2018-01-10 17:44  蓓蕾心晴  阅读(1277)  评论(0编辑  收藏  举报