[英]How to force landscape orientation in a webapp in the browser
我有一个在 Android 上的 chrome 网络浏览器中运行的网络应用程序。
我想将方向锁定为横向。
我根据本教程尝试了几个选项:
使用 ScreenOrientation.lock(),这是实验性的。 这里的示例代码在我的手机(Pixel3,Android 11)中不起作用 - 当设备旋转时,方向会发生变化。
我还尝试了一个 CSS 技巧,如果检测到设备处于纵向模式,它会将屏幕旋转 90 度。
在简化示例中,屏幕以横向模式呈现,但实际应用程序的功能已损坏。 例如,当手指在 x 方向移动时被解释为在 y 方向移动。
我的 Pixel3 手机在 Android 中的 Chrome 上的其他尝试也失败了(旋转设备时方向会发生变化)
我可以通过将页面安装为 PWA“添加到主屏幕”并使用清单来锁定方向
cat manifest.json
"display": "standalone",
"orientation": "landscape",
但这需要用户将应用安装为PWA
我想在常规浏览器中运行时锁定 webapp 的方向。
这可能吗?
谢谢
您可以做的最好的选择是生成一个不允许输入的简单popup
,即; 覆盖屏幕。 然后使用下面的代码【可以更好的微调】来检测用户是竖屏还是横屏。
setTimeout(() => {
if(window.innerHeight > window.innerWidth){
document.body.getElementById('custom-popup').classList.add('show');
// Obviously you'd have to make a popup that is visible when the class 'custom-popup` is added.
} else {
document.body.getElementById('custom-popup').classList.remove('show');
// The user switched to landscape presumably
}
}, 3000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.