javascript-从浏览器中删除地址栏(在Android上查看)
有谁知道我该如何从Android浏览器中删除地址栏,以更好地查看我的Web应用程序并使它看起来更像本机应用程序?
11个解决方案
45 votes
您可以使用下一个代码
if(navigator.userAgent.match(/Android/i)){
window.scrollTo(0,1);
}
希望对您有帮助!
Carlos answered 2020-07-07T09:24:12Z
32 votes
这是NON-jQuery解决方案,可立即删除地址栏而无需滚动。 同样,当您旋转浏览器的方向时,它也可以工作。
function hideAddressBar(){
if(document.documentElement.scrollHeight
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上使用,但是我无法测试。
Tim Eckel answered 2020-07-07T09:24:36Z
14 votes
如果已加载jQuery,则可以查看内容的高度是否大于视口高度。 如果不是,则可以使其达到该高度(或更低)。 我在Android模拟器中以WVGA800模式运行以下代码,然后在我的Samsung 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 answered 2020-07-07T09:24:57Z
10 votes
参考Volomike的答案,我建议替换该行
nViewH -= 250;
与
nViewH = nViewH / window.devicePixelRatio;
它与我在HTC Magic(PixelRatio = 1)和Samsung Galaxy Tab 7“(PixelRatio = 1.5)上进行检查时完全一样。
Rafael Perelló answered 2020-07-07T09:25:25Z
1 votes
下面的那个每次都对我有用。
这个站点还有其他一些建议,但是可以在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);
});
Adam Huddleston answered 2020-07-07T09:26:07Z
1 votes
其中大多数问题是用户仍然可以向上滚动并查看地址栏。要制定永久解决方案,您还需要添加此解决方案。
//WHENEVER the user scrolls
$(window).scroll(function(){
//if you reach the top
if ($(window).scrollTop() == 0)
//scroll back down
{window.scrollTo(1,1)}
})
user1869558 answered 2020-07-07T09:26:27Z
1 votes
这适用于android(至少在现有的姜饼浏览器上):
此外,如果要禁用滚动,可以使用
setInterval(function(){window.scrollTo(1,0)},50);
ranjan_purbey answered 2020-07-07T09:26:52Z
0 votes
这是一个示例,可确保主体具有设备屏幕高度的最小高度,并且还隐藏滚动条。 它使用DOMSubtreeModified事件,但仅每400毫秒进行一次检查,以避免性能损失。
var page_size_check = null, q_body;
(q_body = $('#body')).bind('DOMSubtreeModified', function() {
if (page_size_check === null) {
return;
}
page_size_check = setTimeout(function() {
q_body.css('height', '');
if (q_body.height() < window.innerHeight) {
q_body.css('height', window.innerHeight + 'px');
}
if (!(window.pageYOffset > 1)) {
window.scrollTo(0, 1);
}
page_size_check = null;
}, 400);
});
在Android和iPhone上测试。
JussiR answered 2020-07-07T09:27:16Z
0 votes
我希望它也有用
window.addEventListener("load", function()
{
if(!window.pageYOffset)
{
hideAddressBar();
}
window.addEventListener("orientationchange", hideAddressBar);
});
Tunaki answered 2020-07-07T09:27:36Z
-1 votes
最后,我尝试一下。 它为我工作。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ebook);
//webview use to call own site
webview =(WebView)findViewById(R.id.webView1);
webview.setWebViewClient(new WebViewClient());
webview .getSettings().setJavaScriptEnabled(true);
webview .getSettings().setDomStorageEnabled(true);
webview.loadUrl("http://www.google.com");
}
您的整个main.xml(res / layout)看起来应该像这样:
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
不要添加布局。
SahanS answered 2020-07-07T09:28:04Z
-2 votes
我发现,如果您添加要卸载的命令,则他会保留该页面,即正在移动的页面!希望它也能与您合作!
window.addEventListener("load", function() { window.scrollTo(0, 1); });
window.addEventListener("unload", function() { window.scrollTo(0, 1); });
使用带有Android的7英寸平板电脑,www.kupsoft.com访问我的网站并检查其行为页面,我在门户中使用此命令。
Junior Penascais answered 2020-07-07T09:28:29Z