css Android手机上的全屏“主屏幕”Web应用程序在Chrome中有48 px溢出;如何修复?

nnvyjq4y  于 2023-06-07  发布在  Android
关注(0)|答案(1)|浏览(163)

我正在使用Chrome为Android手机开发全屏Web应用程序(PWA)。我添加了一个webmanifest文件,显示属性设置为全屏。然而,当我从主屏幕打开应用程序时,即使在空页面上,也会出现持续的48px溢出。
我尝试过将html和body height设置为100%,并将overflow设置为hidden,以及其他各种CSS和JavaScript解决方案(例如使用window.visualViewport.height),但溢出仍然存在。
以下是我目前的设置:

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <title>Fullscreen Web App</title>
</head>
<body>
</body>
</html>

CSS

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: fixed;
}

* {
  box-sizing: border-box;
}

JavaScript(使用window.visualViewport.height):

function setViewportHeight() {
  const viewportHeight = window.visualViewport.height;
  document.documentElement.style.height = `${viewportHeight}px`;
  document.body.style.height = `${viewportHeight}px`;
}

window.addEventListener('load', setViewportHeight);
window.addEventListener('resize', setViewportHeight);
window.addEventListener('orientationchange', setViewportHeight);

48px溢出仍然存在,即使我将body和html height设置为较小的值,如20px。如何消除这种溢出并确保我的全屏Web应用程序在使用Chrome的Android手机上正确显示?
此外,虽然我第一次遇到这个问题是在Zebra扫描仪上,但它发生在每个Android设备上。但是,这个问题在iOS设备上不会发生。

68bkxrlz

68bkxrlz1#

我也有同样的问题。
我们并不孤单:Chrome-Mobile PWA Fullscreen: App Area Exeeds HTML Height
这可能是一个Chrome bug,我的Chrome版本是113.0.5672.162。
如果有人找到了解决办法,帮帮忙

相关问题