以下是我的三星Galaxy Tab的用户代理
Mozilla/5.0 (Linux;Android8.1.0;SM-T580 Build/M1AJQ;wv) AppleWebKit/537.36 ( Chrome/76.0.3809.89,类似壁虎)版本/4.0 Safari/537.36
请注意,截至今天(2019年8月8日),这是最新版本的铬。作为参考,这里是我的Pixel 3用户代理:
Mozilla/5.0 (Linux;Android 9;Pixel 3) AppleWebKit/537.36 ( Chrome/76.0.3809.89,类似壁虎)
两者都有相同的铬版。
当检查平板电脑上的window.DeviceOrientationEvent时,我得到undefined和像素电话ƒ DeviceOrientationEvent() { [native code] }。
这个事实导致我的定向听者在平板电脑上失败。
window.addEventListener('deviceorientation', (event) => {
console.log(event);
});如果铬版是相同的,那怎么可能呢?是否有三星的“禁用机制”作为默认行为,或者可能是一个缺陷?
你的猜测是什么?
发布于 2020-03-06 14:48:17
事实上,了解这种情况发生的原因可能会很有趣。我的智能手机GalaxyS10也有同样的问题。用户代理是这样一个:
用户代理: Mozilla/5.0 (Linux;Android 10;SM-G973F) AppleWebKit/537.36 ( Chrome/80.0.3987.119,像壁虎一样)
当我看到浏览器兼容性表这里时,我不明白为什么我的手机无法启动这个事件。
可以帮助(您可能已经尝试过了)是用orientationchange事件来代替这个事件,它也允许您监视设备的方向。
你有个短小的这里医生!
我为我的测试做了一个例子,我很高兴与大家分享,这就是:
<!DOCTYPE html>
<html>
<head>
<title>Orientation - Screen Mode</title>
<meta name="viewport" content="width=device-width, user-scalable=no">
</head>
<body>
<span id="mode" />
<script>
(function() {
var mode = document.getElementById('mode');
function modeFrom(orientationAngle) {
return orientationAngle !== 0? 'landscape': 'portrait';
}
function setInfosFrom(o, value) {
value = 'Non compatible browser!';
if (o !== undefined) {
value = modeFrom(o) + " (angle " + o + "°)";
}
mode.innerHTML = value;
}
function setInfos() {
setInfosFrom(window.orientation);
}
setInfos();
window.addEventListener('orientationchange', setInfos, false);
}());
</script>
</body>
</html>希望它能对你或其他读者有所帮助!)
祝你今天愉快!
https://stackoverflow.com/questions/57412448
复制相似问题