Два разных экрана запуска, показанные на iPhone X при инициализации

Только что обновил приложение Cordova, чтобы оно содержало LaunchImage для iPhone X, и теперь в эмуляции я вижу изображение запуска правильного размера, которое через секунду показывает другое, слишком большое и расширяется за пределы страницы.

Я не могу понять, почему изображение запуска/заставка отображается дважды? При инициализации устройства navigator.splashscreen вызывает hide, а затем никогда не вызывает show, поэтому в коде этого не происходит. Я поместил изображения запуска в Xcode и использую плагин cordova-plugin-splashscreen. Из документов я предположил, что использование Xcode или добавление их в config.xml было эквивалентно в отношении устаревших активов заставки, но теперь я запутался. Это происходит только на iPhone X, но не на iPhone 5s, 6, 7, 8 или iPad.


person mtpultz    schedule 28.02.2018    source источник


Ответы (3)


Итак, первое отображаемое изображение запуска — это то, которое отображается системой, а второе — то, которое отображается плагином-заставкой. Проблема была решена путем обновления до версии cordova-plugin-splashscreen v5.0.2, которая содержит исправление ошибки.

person mtpultz    schedule 28.02.2018
comment
У меня была та же проблема, и я обновил плагин до версии 5.0.3... теперь у меня есть только одна заставка, но теперь она слишком большая... и перекошена. Фактически, независимо от того, какое устройство я запускаю на симуляторе iPhone X или реальном iPhone 6 (12.3), я получаю огромное, шаткое / перекошенное изображение. Как я могу решить эту проблему? Я использую файлы @2x/3x~universal~anyany/anycom/comcom. - person rolinger; 21.08.2019
comment
У меня все работает, однако на iPhone 6 все еще отображается кешированное изображение заставки — этого изображения больше нет в приложении. Я удалил приложение, перезагрузил телефон, переустановил приложение, но оно все еще отображается - после того, как показывается неправильный большой / перекошенный, затем отображается правильное изображение правильного размера. Я не могу избавиться от кэша. - person rolinger; 21.08.2019

В дополнение к решению @mtpultz выше, я также нашел старые файлы заставки, которые нужно было удалить, и добавить несколько новых.

Для тех, кто делится моей проблемой или имеет проблемы с приложением Ionic, связанным с этим, после компиляции я нашел СТАРЫЕ файлы заставки в этой папке: platforms/ios/myApp/Images/xcassets/LaunchImage.launchimage/ - также проверьте папку LaunchStoryboard.imageset и убедитесь, что все ваши изображения верны. Я нашел два файла, по-прежнему отображающих значок кордовы по умолчанию (Default-2436h.png и Default-Landscape-2436h.png). Я создал два новых файла изображений с этими размерами ширины/высоты и скопировал эти два файла. Теперь все работает.

person rolinger    schedule 21.08.2019

Проблема заключается в том, что вы заранее скрыли экран заставки, а iOS сменила его на собственный экран-заставку. Одно из возможных решений — увеличить SplashScreenDelay в config.xml <preference name="SplashScreenDelay" value="100000"/> или вручную скрыть экран-заставку, когда приложение заряжает все компоненты.

person Daniel Silva Orrego    schedule 20.03.2020