yiivon
yiivon
  • 发布:2015-05-24 15:06
  • 更新:2015-05-26 18:01
  • 阅读:2274

screen 分辨率错误

分类:5+ SDK

小米平板,1024*768,但自从上一次更新后,每次取得plus.screen.resolutionHeight都为1024,与plus.screen.resolutionWidth 一样。
作为一个老码农的我觉得,也许会有H5+标准出来,但,它应该被一个具备严谨严格、稳重规范的组织所创造。
也许这一条报告会再次被忽略,但没关系,我只想尽作为使用者的职责。

2015-05-24 15:06 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

规范定义没有问题,可能是我们的产品实现有问题,我们排查下。@DCloud_App_Array @DCloud_Android_磊子 @DCloud_Android_mabo

sayHello

sayHello

红米note上输出640x360,实际为1280x720。

HBuilder 5.7.0.201505060254

DCloud_App_Array

DCloud_App_Array

@sayHello 规范上是这样描述的:
设备屏幕区域包括系统状态栏显示区域和应用显示区域,screen获取的是设备屏幕总区域的逻辑分辨率,单位为px。 如果需要获取实际分辨率则需要乘以比例值scale。
如果要获取设备的实际(物理),则应该使用以下脚本:

var height=plus.screen.resolutionHeight*plus.screen.scale;  
var width=plus.screen.resolutionWidtht*plus.screen.scale;

为何这里定义使用逻辑分辩?
这是因为在CSS中默认使用的都是逻辑分辨率,也就是说给一个div设置的宽度为plus.screen.resolutionWidtht,那么现实的宽度就是屏幕的宽度,通常情况下开发者只要根据此值来设置DOM元素的宽,而不用考虑scale的值。

DCloud_Android_ST

DCloud_Android_ST

你好!我们经过测试没有发现plus.screen.resolutionHeight 和plus.screen.resolutionWidth的值是一样的问题,你有没有通过其他设备进行测试呢。方便的话可以给我一套测试代码,我们来测试一下问题所在!

yiivon

yiivon (作者)

    _mod.adjustFullScreen = function(ws, hs) {  
        plus.navigator.setFullscreen(true);  
        var scale = plus.screen.scale;  

        // NOTE: incorrect returns after upgradding base-package, commented 2 lines  
        var sh = plus.screen.resolutionHeight,  
            sw = plus.screen.resolutionWidth;  

        // compatible for iOS 8.3 on ipad Mini div by scale  
        //var sh = window.screen.height / scale,  
        //  sw = window.screen.width / scale;  

        sh = sw > sh ? sh : (function() {  
            var tmp = sh;  
            sh = sw;  
            sw = tmp;  
            return sh;  
        }());  

        _mod.swidth = sw;  
        _mod.sheight = sh;  

        if (document && document.body) {  
            if (!isNaN(hs) && hs > 0) document.body.style.height = parseFloat(sh * hs / 100) + 'px';  
            if (!isNaN(ws) && ws > 0) document.body.style.width = parseFloat(sw * ws / 100) + 'px';  
        }  

        return _mod;  
    };

在小米平板(android 4.4.4)上 sh 与 sw 一致,而ipad 中则没有问题。调用这个函数之前,先设置了侧屏。

DCloud_Android_ST

DCloud_Android_ST

hi你好 经过验证 确实存在问题,我们会在下一个版本进行修改,对开发造成的问题道歉哈。临时解决方案你可以使用display的宽和高

yiivon

yiivon (作者)

谢谢,很高兴有H5+。

该问题目前已经被锁定, 无法添加新回复