Подтвердить что ты не робот

Показать адресную строку Force в мобильном приложении Chrome

Я работаю над веб-приложением. В большинстве приложений прокрутка отключена, однако одна полноэкранная панель должна быть прокручиваемой.

Проблема:

Если пользователь входит в состав прокручиваемого приложения и прокручивается вниз, адресная строка исчезает. Если после исчезновения адресной строки пользователь решает выйти из этой панели, нажав кнопку X в строке меню фиксированной позиции, тогда адресная строка никогда не запускается (поскольку прокрутка никогда не происходит), и поэтому пользователь застревает в прокрутке -disabled-bar-less.

Мой вопрос:

Можно ли принудительно активировать адресную строку в Google Chrome?

Ссылки

JSBin output

JSBin code

BTW

Просто установка $(window).scrollTop(0) этого не делает.

Эмуляция с помощью инструментов dev не работает. Вам нужно открыть его на мобильном устройстве, в Chrome-приложении.

Спасибо!


Пример ниже:

Разрешена прокрутка, адресная строка, показывающая

img1)

Разрешено прокрутка, адресная строка, показывающая

img2

Пользователь прокручивается, прячется адресная строка

img3

Вернитесь к отключенному отключению прокрутки, адресная строка скрыта

img4

4b9b3361

Ответ 1

Одним из способов является использование div в качестве прокручиваемого контейнера для содержимого тела. Таким образом, тело не прокручивается, но внутренний div и Chrome не скрывают адресную строку при прокрутке этого внутреннего div:

<body style="margin:0;padding:0;width:100%;height:100%">
  <div style="position:absolute;width:100%;height:100%;overflow:scroll">
    Content
  </div>
</body>

Полоса прокрутки видимая: http://jsbin.com/zibewepiwo

Полоса прокрутки автоматически скрывается: http://jsbin.com/yeyapijulo

Протестировано в Chrome Beta 44.0.2403.63 и Chrome 43.0.2357.93 в Android 4.4.2 (Samsung Galaxy Tab 3).

Ответ 2

body {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: 0;
}
.content {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: auto;
-webkit-overflow-scrolling: touch;
}

ссылка http://goratchet.com/examples/app-movies/

С помощью chrome dev-tool мы могли видеть исходный код.

Ответ 3

Изменить v2: Один метод который потенциально может работать, это использовать "Полноэкранный API" и обнаруживать каждый раз пользователь прокручивает (используя метод jQuery), а затем советует браузеру выйти из полноэкранного режима каждый раз, чтобы сохранить адресную строку. Имейте в виду, что это непроверено, поэтому скажите мне, есть ли у вас какая-нибудь удача в этом методе...

$(window).scroll(function(){
    document.webkitExitFullscreen();
    document.exitFullscreen();
});

Изменить: Чтение с страницы FAQ для мобильного приложения Chrome означает, что при прокрутке адреса бар автоматически отключается, хотя он не указывает какой-либо метод его отключения. Это еще раз указывает на то, что это невозможно.


Хотя это может и не быть ответом на вашу проблему, я считаю, что стоит упомянуть, что многие браузеры игнорируют попытку вручную манипулировать тем, как браузер работает или отображается, по конкретным причинам безопасности - часто связанным с фишингом.

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

https://bugzilla.mozilla.org/show_bug.cgi?id=337344