有谁知道如何从 Android 浏览器中删除地址栏以更好地查看我的网络应用程序并使其看起来更像本机应用程序?
从浏览器中删除地址栏(在 Android 上查看)
IT技术
javascript
android
mobile
2021-01-16 06:26:45
6个回答
你可以用下一个代码来做到这一点
if(navigator.userAgent.match(/Android/i)){
window.scrollTo(0,1);
}
我希望它能帮助你!
这是非 jQuery 解决方案,它无需滚动即可立即删除地址栏。此外,它可以在您旋转浏览器的方向时起作用。
function hideAddressBar(){
if(document.documentElement.scrollHeight<window.outerHeight/window.devicePixelRatio)
document.documentElement.style.height=(window.outerHeight/window.devicePixelRatio)+'px';
setTimeout(window.scrollTo(1,1),0);
}
window.addEventListener("load",function(){hideAddressBar();});
window.addEventListener("orientationchange",function(){hideAddressBar();});
它也应该适用于 iPhone,但我无法对此进行测试。
如果你已经加载了 jQuery,你可以看到内容的高度是否大于视口高度。如果没有,那么您可以将其设置为那个高度(或稍微小一点)。我在 Android 模拟器中以 WVGA800 模式运行以下代码,然后在我的三星 Galaxy Tab 上运行它,在这两种情况下它都隐藏了地址栏。
$(document).ready(function() {
if (navigator.userAgent.match(/Android/i)) {
window.scrollTo(0,0); // reset in case prev not scrolled
var nPageH = $(document).height();
var nViewH = window.outerHeight;
if (nViewH > nPageH) {
nViewH -= 250;
$('BODY').css('height',nViewH + 'px');
}
window.scrollTo(0,1);
}
});
参考Volomike 的回答,我建议更换这条线
nViewH -= 250;
和
nViewH = nViewH / window.devicePixelRatio;
它的工作原理与我在 HTC Magic (PixelRatio = 1) 和 Samsung Galaxy Tab 7" (PixelRatio = 1.5) 上的检查完全一样。
下面的那个每次都对我有用..
该站点还有一些其他建议,但这个严肃、无忧的建议可在 github:gist 中找到并回答您的问题(为方便起见,粘贴在此处):
function hideAddressBar()
{
if(!window.location.hash)
{
if(document.height < window.outerHeight)
{
document.body.style.height = (window.outerHeight + 50) + 'px';
}
setTimeout( function(){ window.scrollTo(0, 1); }, 50 );
}
}
window.addEventListener("load", function(){ if(!window.pageYOffset){ hideAddressBar(); } } );
window.addEventListener("orientationchange", hideAddressBar );
据我所知,添加到页面的额外高度(这给您带来了问题)和 scrollTo() 语句的组合使地址栏消失。
在同一站点,隐藏地址栏的“最简单”解决方案是使用 scrollTo() 方法:
window.addEventListener("load", function() { window.scrollTo(0, 1); });
这将隐藏地址栏,直到用户滚动。
该站点在超时函数中放置了相同的方法(没有解释理由,但它声称没有它代码就无法正常工作):
// When ready...
window.addEventListener("load",function() {
// Set a timeout...
setTimeout(function(){
// Hide the address bar!
window.scrollTo(0, 1);
}, 0);
});
其它你可能感兴趣的问题