Pracuję nad jednostronicową aplikacją internetową, która najczęściej będzie używana na urządzeniach mobilnych. Jedną z jego funkcji jest tryb mapy, który tymczasowo przejmuje całe okno przeglądarki; skalę odległości i niektóre elementy sterujące są dołączone do czterech rogów mapy. Oto mały zrzut ekranu mapy, dzięki czemu możesz powiedzieć, o czym mówię:
Mapa jest realizowany jako <div>
ze position: fixed
i wszystkie cztery współrzędne zero; Ja również tymczasowo ustawić <body>
, aby overflow: hidden
podczas gdy mapa jest widoczna obsłużyć przypadek podstawowej aplikacji wyświetlaczu są przewijane od pochodzenia. To wystarczy, aby mapa działała dokładnie tak, jak chcę w przeglądarkach komputerowych. Przeglądarki mobilne również wymagały podania metatagu znacznika okienka z czymś takim "width=device-width,user-scalable=no"
, aby widoczny obszar okna dokładnie odpowiadał rzutni.
Wszystko to działało pięknie kilka lat temu, kiedy pierwotnie napisałem tę aplikację, ale gdzieś po prostu iOS Safari przestał honorować dowolne opcje meta rzutni obejmujące skalowanie - najwyraźniej zbyt wiele witryn źle zastosowało znacznik, co spowodowało, że tekst był nieczytelnie mały, ale nie do zniesienia. Obecnie, jeśli włączysz mapę w tej przeglądarce, prawdopodobnie zobaczysz nieco powiększony widok, który odcina te przyciski po prawej iu dołu - i nic nie możesz na to poradzić, ponieważ wszystkie dotknięcia są interpretowane jako gesty powiększania / przesuwania mapy zamiast przewijania przeglądarki. Mapa nie jest zbyt przydatna bez funkcji dostępnych za pomocą tych przycisków - i bez prawego górnego przycisku nie można nawet zamknąć mapy. Jedynym wyjściem jest ponowne załadowanie strony, co może spowodować utratę niezapisanych danych.
Na pewno dodam użycie history.pushState
/, onpopstate
aby nakładka mapy zachowywała się jak osobna strona. Możesz wyjść z trybu mapy za pomocą przycisku Wstecz przeglądarki - ale to nie rozwiązuje problemu utraty funkcjonalności z powodu braku przycisków.
Zastanawiałem się nad .requestFullscreen()
wdrożeniem nakładki mapy, ale nie wszędzie jest obsługiwane, że w przeciwnym razie aplikacja byłaby użyteczna. W szczególności najwyraźniej w ogóle nie działa na iPhone'ach, a na iPadzie dostajesz pasek stanu i ogromny przycisk „X” nakładający się na twoją treść - moja skala odległości prawdopodobnie już nie byłaby czytelna. W każdym razie nie jest to semantycznie to, czego naprawdę chcę - potrzebuję pełnego okna , a nie pełnego ekranu.
Jak uzyskać wyświetlanie w pełnym oknie w nowoczesnych przeglądarkach? Wszystkie informacje, które mogę znaleźć na ten temat, mówią o używaniu metatagu rzutni, ale jak już wspomniałem, to już nie działa.