Удаление адресной строки из браузера (для просмотра на Android)

Кто-нибудь знает, как я могу удалить адресную строку из браузера Android, чтобы лучше просмотреть мое веб-приложение и сделать его более похожим на родное приложение?

Solutions Collecting From Web of "Удаление адресной строки из браузера (для просмотра на Android)"

Вы можете сделать это с помощью следующего кода

if(navigator.userAgent.match(/Android/i)){ window.scrollTo(0,1); } 

Надеюсь, это поможет!

Вот решение NON-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, вы можете увидеть, превышает ли высота содержимого высоту видового экрана. Если нет, то вы можете сделать эту высоту (или немного меньше). Я запускал следующий код в режиме WVGA800 в эмуляторе Android, а затем запускал его на вкладке 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); } }); 

Ссылаясь на ответ Воломике , я бы предложил заменить линию

 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); }); 

Проблема с большинством из них в том, что пользователь все еще может прокручивать вверх и видеть адресную панель. Чтобы сделать постоянное решение, вам нужно добавить его также.

 //WHENEVER the user scrolls $(window).scroll(function(){ //if you reach the top if ($(window).scrollTop() == 0) //scroll back down {window.scrollTo(1,1)} }) 

Это работает на Android (по крайней мере, на биржевом браузере):

 <body onload="document.body.style.height=(2*window.innerHeight-window.outerHeight)+'px';"></body> 

Далее, если вы хотите отключить прокрутку, вы можете использовать

 setInterval(function(){window.scrollTo(1,0)},50); 

Вот пример, который гарантирует, что тело имеет минимальную высоту высоты экрана устройства и также скрывает полосу прокрутки. Он использует событие 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.

Я надеюсь, что это также полезно

 window.addEventListener("load", function() { if(!window.pageYOffset) { hideAddressBar(); } window.addEventListener("orientationchange", hideAddressBar); }); 

Наконец я попробую с этим. Это сработало для меня ..

  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) должен выглядеть так:

 <WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webView1" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

Не добавляйте макеты.

Я обнаружил, что если вы добавите команду для разгрузки, он держит страницу, то есть страницу, которая перемещается! Надеюсь, он с тобой тоже работает!

 window.addEventListener("load", function() { window.scrollTo(0, 1); }); window.addEventListener("unload", function() { window.scrollTo(0, 1); }); 

Используя 7-дюймовый планшет с Android, http://www.kupsoft.com зайдите на мой сайт и проверьте, как он ведет себя на странице, я использую эту команду на своем портале.