我想在Android和iOS设备上正确确定设备的方向。
经过调查,我意识到在iOS设备上,无论用户如何旋转设备,其宽度和高度都保持不变。
function orientation () {
const { width, height, orientation } = window.screen;
let angle = 0;
let rotated = false;
if (orientation != null) { // Android
angle = orientation.angle;
} else if (window.orientation != null) { // iOS
// in iOS, w and h always stay the same regardless orientation
angle = parseInt('' + window.orientation, 10);
rotated = angle % 180 !== 0;
}
const layout = (width < height)
? (rotated ? 'LANDSCAPE' : 'PORTRAIT')
: (rotated ? 'PORTRAIT' : 'LANDSCAPE');
return layout;
}
到目前为止,我已经在桌面浏览器,ios模拟器,实际的iphone和Andriod模拟器上进行了测试,它们似乎可以正常工作。
我想知道的是,上面的代码是否可以用于大多数常见的硬件。上面的代码中是否存在疏忽?