Я создал новый проект phonegap (v 3.0.0-0.14.0) с config.xml по умолчанию, а затем добавил платформы iOS и Android.
Конфигурация содержит все пути ко всем иконкам платформы.
Я перезаписал значки по умолчанию для iOS и Android, чтобы путь и имя по-прежнему соответствовали этим png.
При запуске в симуляторе значки не отображаются. Я просмотрел его в xCode, где он сообщает мне, что папка «Ресурсы» для значков по-прежнему содержит значки телефонного разговора по умолчанию. То же самое и с Android.
Что я делаю не так?
Как я могу добавить пользовательские значки приложений для iOS и Android с помощью телефонного разговора?
Благодарность
мой config.xml
<icon src="icon.png" />
<icon gap:density="ldpi" gap:platform="android" src="res/icon/android/icon-36-ldpi.png" />
<icon gap:density="mdpi" gap:platform="android" src="res/icon/android/icon-48-mdpi.png" />
<icon gap:density="hdpi" gap:platform="android" src="res/icon/android/icon-72-hdpi.png" />
<icon gap:density="xhdpi" gap:platform="android" src="res/icon/android/icon-96-xhdpi.png" />
<icon gap:platform="ios" height="57" src="res/icon/ios/icon-57.png" width="57" />
<icon gap:platform="ios" height="72" src="res/icon/ios/icon-72.png" width="72" />
<icon gap:platform="ios" height="114" src="res/icon/ios/icon-57-2x.png" width="114" />
<icon gap:platform="ios" height="144" src="res/icon/ios/icon-72-2x.png" width="144" />
<icon gap:platform="blackberry" src="res/icon/blackberry/icon-80.png" />
<icon gap:platform="blackberry" gap:state="hover" src="res/icon/blackberry/icon-80.png" />
<icon gap:platform="webos" src="res/icon/webos/icon-64.png" />
<icon gap:platform="winphone" src="res/icon/windows-phone/icon-48.png" />
<icon gap:platform="winphone" gap:role="background" src="res/icon/windows-phone/icon-173.png" />
Ответы:
К счастью, в документации есть немного о заставках, которые также помогли мне найти правильное место для изображений значков. Итак, поехали.
Где размещаются файлы. После того как вы создали свой проект с использованием интерфейса командной строки «cordova build ios», у вас должна быть полная файловая структура для вашего приложения iOS в
platforms/ios/
папке.Внутри этой папки находится папка с названием вашего приложения. Что , в свою очередь , содержит
resources/
каталог , в котором вы найдетеicons/
иsplashscreen/
папки.В папке значков вы найдете четыре файла значков (для 57 пикселей и 72 пикселей, каждый в обычной версии и версии @ 2x). Это значки-заполнители Phonegap, которые вы видели до сих пор.
Что делать
Все, что вам нужно сделать, это сохранить файлы значков в этой папке. Так вот:
YourPhonegapProject/Platforms/ios/YourAppName/Resources/icons
То же самое для файлов заставки.
Примечания
Поместив туда файлы, перестройте проект, используя
cordova build ios
И используйте команду меню xCode «Очистить продукт». Без этого вы все равно будете видеть заполнители Phonegap.Разумнее переименовать файлы в стиле iOS / Apple (например, icon-72@2x.png и т. Д.) Вместо редактирования имен в info.plist или config.xml. По крайней мере, у меня это сработало.
И, кстати, игнорируйте странный путь и странное имя файла, указанные для значков в config.xml (т.е.
<icon gap:platform="ios" height="114" src="res/icon/ios/icon-57-2x.png" width="114" />
). Я просто оставил эти определения там, и значки отображались нормально, хотя мой значок размером 114 пикселей был названicon@2x.png
вместоicon-57-2x.png
.Не используйте config.xml, чтобы предотвратить эффект глянца Apple на значок. Вместо этого установите флажок в xCode (щелкните заголовок проекта в левом столбце навигации, выберите свое приложение под заголовком Target и прокрутите вниз до раздела значков).
источник
Часто задаваемые вопросы: ICON / SPLASH SCREEN (Cordova 5.x / 2015)
Я представляю свой ответ в виде общих часто задаваемых вопросов, которые могут помочь вам решить многие проблемы, с которыми я столкнулся при работе со значками / заставками. Вы можете узнать, как и я, что документация не всегда очень четкая и актуальная. Это, вероятно, попадет в документацию StackOverflow, когда она будет доступна.
Первое: ответ на вопрос
В вашей версии Кордова
icon
тег бесполезно. Это даже не задокументировано в Cordova 3.0.0. Вы должны использовать ту версию документации, которая подходит для используемого вами cli, а не последнюю версию!Значок Тег не работает для Android вообще до версии 3.5.0 в соответствии с тем, что я могу видеть в различных версиях документации. В 3.4.0 по-прежнему советуют вручную копировать файлы
В более новых версиях : вы
config.xml
выглядите лучше для новых версий Cordova. Однако есть еще много вещей, которые вы, возможно, захотите узнать. Если вы решили обновить, вот несколько полезных вещей, которые нужно изменить:gap:
пространство имен<preference name="SplashScreen" value="screen" />
для AndroidВот более подробная информация о вопросах, которые вы можете задать себе, пытаясь разобраться со значками и заставкой:
Могу ли я использовать старую версию Cordova / Phonegap
Нет, функции значков / заставок не было в предыдущих версиях Cordova, поэтому вы должны использовать последнюю версию. В предыдущих версиях только Phonegap Build обрабатывал значки / заставку, поэтому локальная сборка и обработка значков были возможны только с помощью крючка. Я не знаю минимальную версию для использования этой функции, но с 5.1.1 она отлично работает как в Cordova / Phonegap cli. С Cordova 3.5 у меня не получилось.
Изменить : для Android вы должны использовать не менее 3.5.0
Как я могу отладить процесс сборки значков?
Cli использует команду CP. Если вы укажете неверный путь к значку, появится сообщение
cp
об ошибке:Изменить : вы должны использовать
cordova build <platform> --verbose
для получения журналов использования команды cp, чтобы увидеть, куда копируются ваши значкиИконки должны помещаться в папку согласно конфигу. Для меня это находится во многих подпапках:
platforms/android/build/intermediates/res/armv7/debug/drawable-hdpi-v4/icon.png
Затем вы можете найти APK и открыть его как zip-архив, чтобы проверить наличие значков. Они должны находиться в
res/drawable*
папке, потому что это специальная папка для Android.Куда мне поместить значки / заставки в моем проекте?
Во многих примерах вы обнаружите, что значки / заставки объявлены внутри
res
папки. Этоres
специальная папка Android в выходном APK, но это не означает, что вы должны использоватьres
папку в своем проекте.Вы можете разместить свой значок где угодно, но путь, который вы используете, должен быть относительно корня проекта ,
www
поэтому будьте осторожны! Это задокументировано, но не ясно, потому что используются все примеры,res
и вы не знаете, где находится эта папка :(Я имею в виду, что если вы поместите значок,
www/icon.png
вы обязательно должны включить егоwww
в свой путь.Edit Mars 2016 : после обновления моих версий теперь кажется, что значки относятся к
www
папке, но документация не была изменена ( проблема )Работает
<icon src="icon.png"/>
?Нет! .
На Android кажется, что раньше он работал (когда атрибут плотности еще не поддерживался?), Но теперь его нет. См. Этот выпуск Кордовы
В iOS кажется, что использование этого глобального объявления может переопределить более конкретные объявления, поэтому позаботьтесь
--verbose
о том, чтобы все работало должным образом.Могу ли я использовать один и тот же файл значков / заставок для всех плотностей.
Да, ты можешь. Вы даже можете использовать один и тот же файл как для значка, так и для заставки (просто для проверки!). Я без проблем использовал "большой" файл значков размером 65 Кб.
В чем разница при использовании тега платформы и атрибута платформы
такой же как
Следует ли использовать пространство имен gap: при использовании Phonegap?
По моему опыту, новые версии Phonegap или Cordova способны понимать объявления значков без использования какого-либо
gap:
пространства имен xml.Однако я все еще жду правильного ответа здесь: плагин cordova / phonegap добавить VS config.xml
Насколько я понимаю, некоторые функции с
gap:
пространством имен могут быть доступны раньше в PhonegapBuild, затем в Phonegap, а затем переносятся на Cordova (?)Является ли
<preference name="SplashScreen" value="screen" />
требуется?По крайней мере, для Android - да. Я открыл вопрос с дополнительными объяснениями.
Имеет ли значение порядок объявления значков?
Да! Согласно моим тестам, это может не повлиять на Android, но на iOS. Это неожиданное и недокументированное поведение, поэтому я открыл другую проблему .
Мне нужно
cordova-plugin-splashscreen
?Да, это абсолютно необходимо, если вы хотите, чтобы заставка работала. Документация не ясна ( проблема ), и давайте подумаем, что плагин требуется только для того, чтобы предлагать javascript API для заставки.
Как я могу быстро изменить размер изображения для любой ширины / высоты / плотности
Есть инструменты, которые помогут вам в этом. Лучше всего для меня http://makeappicon.com/, но для этого нужно указать адрес электронной почты.
Другие возможные решения:
Можете привести пример конфига?
Да. Вот мой настоящий
config.xml
Хорошим источником примеров являются стартовые комплекты. Как начало разговора по телефону или ионный пускатель
источник
cordova build android --verbose
чтобы определить и решить мою проблему. Благодарность!Начиная с Cordova 3.5.0-0.2.6
<icon />
элемент config.xml работает со следующими оговорками:src
Атрибут представляет собой путь относительно корневой папки проекта. Средство отслеживания проблем об этой проблеме, причина изменения.<icon src="..." />
Элемент без разрешения / точек на дюйм документирована в качестве значка используется для всех платформ , как значок по умолчанию. Однако в сборках Android значок по умолчанию копируется только в папку с возможностью переноса Android без определенных разрешений. Это заставляет ваш пользовательский значок отображаться в/res/drawable
папке, а значок Cordova по умолчанию с определенными разрешениями существует в других папках внутри окончательного apk (т.е./res/drawable-ldpi
). Вы должны добавить один элемент значкаconfig.xml
для каждого разрешения на платформе Android.Например, если ваше изображение значка находится в пути
www/res/img/icon.png
относительно вашего корневого проекта, эти строкиconfig.xml
заставляют ваш значок приложения в Android работать:При такой конфигурации у вас может быть один значок изображения для всех разрешений, перезаписывающий значок кордовы по умолчанию, и без пользовательских крючков. Простое построение с использованием
cordova build android
должно сделать свое дело.источник
density
. Я перешел<icon gap:platform="android" gap:qualifier="ldpi" src="www/res/icon/android/icon-36-ldpi.png" />
на<icon gap:platform="android" density="ldpi" src="www/res/icon/android/icon-36-ldpi.png" />
Если вам нужен простой в использовании способ автоматического добавления значков при локальной сборке (
cordova emulate ios
,cordova run android
и т. Д.), Взгляните на эту суть:https://gist.github.com/LinusU/7515016
Надеюсь, когда-нибудь в будущем это начнет работать из коробки, вот соответствующий отчет об ошибке в проекте Cordova:
https://issues.apache.org/jira/browse/CB-2606
источник
Вам необходимо создать файл config.xml, в который вы должны поместить файл значка
Проверьте это: https://build.phonegap.com/docs/config-xml
есть специальные значки iOS
источник
Поскольку большинство ответов здесь нацелены на iOS, вот решение для изменения значка в Android.
Для Android:
Внесите изменения в <расположение проекта> \ platform \ android \ ant-build \ res, а не в <расположение проекта> \ platform \ android \ res
Для некоторых людей, внесение изменений в последнее место, возможно, сработало, но, заметив копирование Phonegap из \ android \ res в \ android \ ant-build \ res, я решил проверить там и нашел отдельный набор переносимых папок, содержащих значения по умолчанию значок телефонного разговора.
Их изменение, наконец, сработало.
Поскольку я создаю и работаю локально и не использую Adobe PhoneGap Build, изменение значков в <расположение проекта> \ www \ res \ icon \ android тоже не помогло.
источник
Я использую phonegap 3.1.0-0.15.0, поскольку iOS7 изменил разрешение на 120x120 пикселей, я просто добавил файл с этими размерами в проект, а затем изменил файл info.plist.
Более подробную информацию можно найти здесь: http://www.digifloor.com/missing-recommended-icon-file-error-ios-app-13
Чтобы исправить заставку в iOS, я просто вставил новые файлы с такими же размерами и именами файлов, перезаписав старые. Просто не забудьте перейти в Product> Clean в строке меню в Xcode (сочетание клавиш Shift + Command + K), и все должно работать нормально! :)
источник
В кордове 3.3.1-0.1.2 ожидаемое поведение не работает.
в
http://cordova.apache.org/docs/en/3.3.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens
в нем четко указано, что вы должны поместить их в свою основную папку www в папке с именем res и icons, которые следуют определенному соглашению об именах, вместо оригинального настраиваемого файла config.xml, указанного способом (в котором вы указываете на файл по вашему выбору, который был / намного лучше). он должен взять оттуда для каждой платформы и поместить их в платформы /? android? / res / drawable-? dpi / icon.png, но в настоящее время он не ведет такого правильного поведения ... ошибка.
поэтому я полагаю, что нам нужно вручную разместить их для каждой платформы. это, конечно, нужно будет удалить из-за повторного копирования в папку www. мне все равно пришлось полностью заменить содержимое в основной папке www, потому что это просто не работало даже с hello world без взлома index.html перенаправления, чтобы найти там какую-то странную случайную папку. Размещение папки res рядом с www имеет наибольший смысл, но то, что мне кажется, вызвано этой серией каскадных и сбивающих с толку вариантов дизайна / недостатков.
источник
в некоторых случаях внутренние скрипты Cordova не помещают значки в нужную папку, поэтому вы можете увидеть робота F *** Cordova вместо своего собственного значка.
Используйте скрипт перехвата .;)
три крючка-ваш-кордова-телефон-проект-потребности
Создайте папку «after_platform_add» в папке хуков и поместите / измените последний скрипт от devgirl.
Не забудьте установить исполнительные права для скрипта в linux
"chmod 777 <script>"
удачи!
источник
Все, что я сделал, это добавил следующие строки в config.xml
<icon src="www/img/appIcon.png" />
И все работало нормально
источник
Просто добавьте этот код в свой файл config.xml
например:
Помните, что вам нужно использовать расширение .png
источник
Я также пытаюсь понять, как все это связано.
Вот что я до сих пор нашел в XCode, но надеюсь, что меня поправят или подтвердят, если мои предположения верны. Я не нашел готовой сборки для xcode от cordova, которая правильно применяет значки. Как и вы, я обновил все значки, перечисленные в config.xml, но без кубиков.
Так...
Во-первых, я обычно обновляю config.xml в корне проекта тем, что находится в моей папке «www» (я делаю это из-за неуверенности, что www / config.xml имеет какой-либо приоритет или даже применяется)
Во-вторых, я обновляю «Фазы сборки» проекта. Разверните «Копировать ресурсы пакета», вы уже заметили все изображения в «Ресурсы / значки», «Ресурсы / заставка». Вы также можете:удалите все это, чтобы избежать перезаписи изображений ИЛИобновите все эти изображения своими собственными (переименование в указанное имя изображения)Поскольку я работал над этим, вы могли бы минимально просто обновить изображения на вкладке «Сводка».
Перетащите изображения из папок с разрешением на соответствующее изображение на вкладке «Сводка». (res / icon / ios -> Значки приложений и res / screen / ios -> Launch Images). Я делаю это только для iPhone, так как мое приложение только для iPhone. Отметьте «prerendered», если вы не хотите, чтобы появился глянец.
Затем обновите «icon.png», указанный в файле plist проекта: PROJECT_NAME-Info.plist или на вкладке «Информация», когда смотрите на цель проекта. Переименуйте его в «icon-57.png» (который теперь находится в корне вашего проекта, он был автоматически добавлен в корень, когда вы выполняли перетаскивание.
Соберите, и у вас должен появиться обновленный значок приложения.
источник
Просто отмечу, что я только что изменил свой config.xml, чтобы он выглядел как пример Себастьяна.
Что-то, что также полезно при отладке всего этого, особенно если вы не выполняете локальные сборки ... - это загрузить файлы XAP / IPA / APK, созданные из облака PhoneGap, и создать папки для каждого. Переименуйте каждый файл с расширением .ZIP и извлеките содержимое каждого из них в соответствующие папки. Таким образом, теперь вы можете увидеть, что находится в упаковке, которая будет отправлена на телефон.
Делая это, я вижу, что платформа Microsoft Phone в значительной степени игнорирует все мои попытки заменить значок или заставку. Если вы затем замените ApplicationIcon.png и SplashScreenImage.jpg, затем повторно заархивируйте набор папок и переименуйте его снова в файл .XAP, вы затем сможете развернуть его на свой телефон, и он будет работать отлично. Каким-то образом есть способ просто получить сборку PhoneGap, чтобы превратить ваши icon.png и icon.jpg в эти два файла. Возможно предложение Масуда - возможность здесь и использовать сценарий перехвата.
То же самое с файлом .IPA (iOS) приводит к появлению нескольких файлов, таких как icon-something.png, на родительском уровне выше www. Все они кажутся пустыми.
То же самое для файла .APK (Android) приводит к набору папок res / drawable-something, и в каждой из них есть мой icon.png. На данный момент я могу утверждать, что это самый близкий к успеху успех.
источник