webkitRequestFullscreen() 在 chrome 上更改网页的视口/尺寸 android

webkitRequestFullscreen() changing viewport / dimensions of webpage on chrome on android

对于应用程序,我需要在 android 上将 chrome 发送到全屏模式。

我知道我需要使用 Fullscreen API,这涉及调用 Element.webkitRequestFullscreen()

所以,我在 document.body 上调用它,因为我希望所有内容都进入全屏模式并利用所有 phone 屏幕。


但是问题是屏幕质量resized/loses。这严重破坏了我的应用程序(正在为虚拟现实绘制 canvas),因为我需要我能得到的所有分辨率!

为了演示屏幕已经放大并丢失了可绘制像素,请从检查我的 phone 的控制台中看到:

window.innerWidth
980
window.innerHeight
1547
//now I enter full screen...
window.innerWidth
360
window.innerHeight
640

很明显,innerWidthinnerHeight 在进入全屏时被缩小了,但我不知道是什么。


我已尝试对正文中包含的 canvas 进行不同的大小调整,但无济于事。

但我认为解决方案是添加一个 viewport:

<meta name="viewport" content="width=device-width, initial-scale=1">

而且我还尝试设置明确的内容宽度:

<meta name="viewport" content="width=900, initial-scale=1">

但是这些似乎都没有 任何 影响网页的行为,所以我不确定我是否放错了它们(在 <head> ) 或者如果我的语法有误,但它们不会改变任何东西。

解决方案(更多的是解决方法)是将我在 phone 中 Chrome 打开的网站转变为渐进式 Web 应用程序。

这就像在根目录中编写一个简短的 manifest.json 文件一样简单,然后在 Chrome 中打开网站后,点击“添加到主屏幕”。

现在 manifest.json 文件有一个选项:display: fullscreen

这不会降低工作 space 分辨率,而正是我需要的修复。

此外,考虑到我的 VR 体验目标,在 Chrome.

中,将其作为一个网络应用程序比您必须大惊小怪的网站更有意义。