#ios #cordova #splash-screen #launchimage
#iOS #cordova #заставка #изображение запуска
Вопрос:
Я настроил свои изображения запуска / заставку в папке Resources / splash с обычной схемой именования (по умолчанию ~ ipad.png, по умолчанию-портрет @ 2x ~ ipad.png и т. Д.). Я не установил ни одну из записей UILaunchImage * plist.
Когда я запускаю свое приложение Cordova на iPad 2, оно немедленно загружает одно из моих изображений запуска. Через несколько секунд (когда запускается плагин org.apache.cordova.splashscreen, судя по тому, что я вижу в журнале), изображение запуска изменится, как правило, на что-то другое с другим разрешением, поэтому все изображение сдвигается. После этого изображение остается таким, какое оно есть, пока я не вызову navigator.splashscreen.hide(). Это также произошло на iPhone4.
Опять же, экран-заставка отображается сразу при открытии приложения, сдвигается на несколько секунд позже, загрузка страницы завершается (в соответствии с консолью) примерно через 5 секунд, а затем navigator.splashscreen.hide() получает вызовы в моем событии ready().
Мне кажется, что, возможно, Xcode выбирает одно из моих изображений в качестве изображения запуска по умолчанию, а затем плагин cordova splashscreen выбирает другое, когда оно загружается с другими плагинами. Сначала я получил черную вспышку, и ошибка консоли «Default.png» не найдена, поэтому я добавил «Default ~ ipad.png» к изображениям заставки. Я думал, что для ipad будут использоваться портретные или альбомные изображения, но плагин, похоже, делает это только в том случае, если CDV_IsIPad() и isOrientationLocked.
Я даже попытался вернуть все изображения в Resources / splash к изображениям запуска Cordova по умолчанию. Когда я это делаю, изображение запуска Cordova отображается сразу при загрузке приложения, через несколько секунд, когда загружается плагин Cordova splashscreen, изображение запуска меняется на одно из МОИХ изображений запуска, а затем исчезает в navigator.splashscreen.hide(). Когда это происходит, я нигде не могу найти никаких ссылок на мои изображения запуска, которые я удалил из проекта; ни в Resources / splash, ни в списке. Очень странно.
Есть идеи, почему заставка меняется с помощью плагина cordova splashscreen или что я должен делать, чтобы это исправить?
Комментарии:
1. возможно, вы захотите настроить свои записи в списке. Изображение запуска iOS (первое) отличается от заставки cdv (второе), поэтому вам нужно указать их на одни и те же ресурсы.
Ответ №1:
В итоге я просмотрел запросы на извлечение для плагина Cordova Splashscreen, просто чтобы узнать, обращался ли кто-нибудь к этой проблеме. Похоже, они это сделали!
в src / ios / CDVSplashScreen.m:
- } else if (CDV_IsIPad() amp;amp; isOrientationLocked) {
- switch (orientation) {
- case UIInterfaceOrientationLandscapeLeft:
- case UIInterfaceOrientationLandscapeRight:
- imageName = [imageName stringByAppendingString:@"-Landscape"];
- break;
-
- case UIInterfaceOrientationPortrait:
- case UIInterfaceOrientationPortraitUpsideDown:
- default:
- imageName = [imageName stringByAppendingString:@"-Portrait"];
- break;
должно быть
} else if (CDV_IsIPad()) {
if (isOrientationLocked) {
imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"-Portrait")];
} else {
switch (orientation) {
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
imageName = [imageName stringByAppendingString:@"-Landscape"];
break;
case UIInterfaceOrientationPortrait:
case UIInterfaceOrientationPortraitUpsideDown:
default:
imageName = [imageName stringByAppendingString:@"-Portrait"];
break;
}