我想在Android浏览器或iOS Chrome中隐藏地址栏。对于全屏数据可视化应用程序来说,这是非常有价值的空间。例如,在iPhone XS的横向方向上,地址栏大约占据了屏幕垂直空间的14%。
对于一个不立即有用的UI元素来说,这是很多的房地产,我希望将其隐藏起来。
我尝试使用Google Web开发人员文档通过非供应商特定的函数隐藏地址栏,例如:
toggleFullScreen = () => {
var doc = window.document;
var docEl = doc.documentElement;
var requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
var cancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
if(!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement) {
requestFullScreen.call(docEl);
}
else {
cancelFullScreen.call(doc);
}
}
这会导致在调用
requestFullScreen.call(docEl)
时抛出错误,其中docEl
不存在。我还尝试在
componentDidMount()
中使用以下代码:componentDidMount() {
setTimeout(() => {
window.scrollTo(0, 1);
}, 1000);
}
这种第二种方法不起作用,可能是因为我的应用程序视口尺寸的原因。它没有产生任何错误。然而,在应用程序CSS中增加高度也没有起作用。
我尝试的第三种方法是在应用程序中添加一个标签:
<meta name="mobile-web-app-capable" content="yes" />
这似乎没有任何作用。
作为最后的尝试,我在iPhone上的iOS Chrome上测试了https://sindresorhus.com/screenfull.js/,但其演示页面表明全屏API不受支持。我还尝试了https://www.npmjs.com/package/toggle-fullscreen和类似的NPM源包来访问全屏API。它们中没有一个似乎起作用,大多数都会发出类似于我在上面描述的toggleFullScreen
方法的错误。
是否存在一种正确的、可工作的方法通过纯JavaScript调用隐藏地址栏,而不需要用户交互,或者Fullscreen API在Android浏览器/iOS Chrome浏览器上根本不受支持?