Показать адресную строку Force в мобильном приложении Chrome
Я работаю над веб-приложением. В большинстве приложений прокрутка отключена, однако одна полноэкранная панель должна быть прокручиваемой.
Проблема:
Если пользователь входит в состав прокручиваемого приложения и прокручивается вниз, адресная строка исчезает.
Если после исчезновения адресной строки пользователь решает выйти из этой панели, нажав кнопку X в строке меню фиксированной позиции, тогда адресная строка никогда не запускается (поскольку прокрутка никогда не происходит), и поэтому пользователь застревает в прокрутке -disabled-bar-less.
Мой вопрос:
Можно ли принудительно активировать адресную строку в Google Chrome?
Ссылки
JSBin output
JSBin code
BTW
Просто установка $(window).scrollTop(0) этого не делает.
Эмуляция с помощью инструментов dev не работает. Вам нужно открыть его на мобильном устройстве, в Chrome-приложении.
Спасибо!
Пример ниже:
Разрешена прокрутка, адресная строка, показывающая
)
Разрешено прокрутка, адресная строка, показывающая
![img2]()
Пользователь прокручивается, прячется адресная строка
![img3]()
Вернитесь к отключенному отключению прокрутки, адресная строка скрыта
![img4]()
Ответы
Ответ 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