iOS 13 Safari: ошибки в window.innerHeight - PullRequest
1 голос
/ 22 марта 2020

Насколько я понимаю, window.innerHeight должен возвращать размер области просмотра без браузера chrome (адресная строка, навигация, вкладки и т. Д. c.). Но, похоже, это не так в последней версии iOS13. Вместо этого есть две проблемы:

  1. ( Иногда * слишком мал в портретной ориентации ) Если вы переключаетесь из портретного режима в ландшафтный режим без открытых вкладок, а затем обратно в портретный режим, Значение window.innerHeight оказывается слишком маленьким (примерно размером с нижнюю панель навигации), давая эту ужасную белую полосу в нижней части экрана. См. Это обсуждение макруморов для более подробной информации: https://forums.macrumors.com/threads/is-this-a-mobile-safari-bug-white-space-appears-at-bottom-after-rotating-iphone.2209551/
  2. ( Иногда * слишком большой в альбомной ориентации ) Если у вас открыто несколько вкладок, "Показать вкладку" бар ", а затем поверните из портретного режима в ландшафтный режим, тогда window.innerHeight слишком большой, и нижняя часть экрана обрезается.

Даже после включения всех мыслимых тегов области просмотра и все их перестановки, это не похоже на работу. Я также посмотрел несколько «учебных пособий» о том, как решить эту проблему в iOS Safari, и на сегодняшний день все, что я проверял, не работает.

Я также попробовал все варианты window.innerHeight, с более или менее одинаковым результатом:

  • Новый API визуального окна просмотра возвращает те же результаты, не отличающиеся от window.innerHeight. Дно все еще усечено в альбомной ориентации с панелью вкладок, а в портретном режиме по-прежнему отображается белая полоса внизу.
  • document.documentElement.clientHeight с различными перестановками CSS (с использованием 100vh, 100% и т. Д. 1049 *.) дает тот же результат. То же самое для getBoundingClientRect для различных элементов div и комбинаций элементов div.
  • window.outerHeight и screen.height дают размер полного экрана без браузера chrome, который обычно слишком велик и вызывает переполнение.
  • Также пробовал кучу других случайных вещей, которые я уже забыл (должны были делать заметки).

Вы можете вручную выдумать это для каждого устройства, если вы Можно угадать размер верхнего и нижнего браузера chrome, но это крайне мало agile. Я ищу решение, которое не включает создание гигантской справочной таблицы для каждой iOS конфигурации устройства и программного обеспечения.

Я пытаюсь создать полноэкранный элемент canvas для веб-игры, и это проблема блокирует мою способность грузить. Насколько я знаю, эта проблема присутствует только в iOS13. После недолгого осмотра я все еще не нашел хорошего решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...