Как добавить значок приложения в проекты телефонной связи?

85

Я создал новый проект 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" />
Маркус
источник
4
это оно? локальная сборка игнорирует файл конфигурации? stackoverflow.com/questions/15018098/…
Маркус
Маркус прав, его комментарий должен быть ответом
drodsou
1
Мне потребовалось время, чтобы написать FAQ обо всем, что вам нужно знать, чтобы отлаживать / заставлять значки работать (cordova 5.1.1). Проверьте stackoverflow.com/a/31674547/82609
Себастьен Лорбер,

Ответы:

67

К счастью, в документации есть немного о заставках, которые также помогли мне найти правильное место для изображений значков. Итак, поехали.

Где размещаются файлы. После того как вы создали свой проект с использованием интерфейса командной строки «cordova build ios», у вас должна быть полная файловая структура для вашего приложения iOS в platforms/ios/папке.

Внутри этой папки находится папка с названием вашего приложения. Что , в свою очередь , содержит resources/каталог , в котором вы найдете icons/и splashscreen/папки.

В папке значков вы найдете четыре файла значков (для 57 пикселей и 72 пикселей, каждый в обычной версии и версии @ 2x). Это значки-заполнители Phonegap, которые вы видели до сих пор.

Что делать

Все, что вам нужно сделать, это сохранить файлы значков в этой папке. Так вот:

YourPhonegapProject/Platforms/ios/YourAppName/Resources/icons

То же самое для файлов заставки.

Примечания

  1. Поместив туда файлы, перестройте проект, используя cordova build iosИ используйте команду меню xCode «Очистить продукт». Без этого вы все равно будете видеть заполнители Phonegap.

  2. Разумнее переименовать файлы в стиле iOS / Apple (например, icon-72@2x.png и т. Д.) Вместо редактирования имен в info.plist или config.xml. По крайней мере, у меня это сработало.

  3. И, кстати, игнорируйте странный путь и странное имя файла, указанные для значков в 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.

  4. Не используйте config.xml, чтобы предотвратить эффект глянца Apple на значок. Вместо этого установите флажок в xCode (щелкните заголовок проекта в левом столбце навигации, выберите свое приложение под заголовком Target и прокрутите вниз до раздела значков).

Wytze
источник
не оставляет имена файлов в config.xml, нарушая сборку с помощью службы сборки телефонного разговора? это работает только потому, что локальная сборка игнорирует config.xml. что, если телефонный разговор решит это прочитать? Я бы посоветовал скопировать эти файлы с помощью какого-то процесса сборки.
Маркус
1
Привет, Маркус, у меня нет опыта работы со службой Phonegap Build (за исключением того, что это сбивало с толку, когда я дал ему короткую и безуспешную попытку). Так что я не могу судить о вашем комментарии, но верю вам на слово. Поэтому мой ответ предназначен только для тех, кто делает свои собственные сборки.
Wytze
1
Этот ответ устарел (но работает для 3.0.0). Для этого больше не требуется никакого ручного процесса. Проверьте крайний документ и мой ответ здесь stackoverflow.com/a/31674547/82609
Себастьен Лорбер
46

Часто задаваемые вопросы: ICON / SPLASH SCREEN (Cordova 5.x / 2015)

Я представляю свой ответ в виде общих часто задаваемых вопросов, которые могут помочь вам решить многие проблемы, с которыми я столкнулся при работе со значками / заставками. Вы можете узнать, как и я, что документация не всегда очень четкая и актуальная. Это, вероятно, попадет в документацию StackOverflow, когда она будет доступна.

Первое: ответ на вопрос

Как я могу добавить пользовательские значки приложений для iOS и Android с помощью телефонного разговора?

В вашей версии Кордова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об ошибке:

sebastien@sebastien-xps:cordova (dev *+$%)$ cordova run android --device
cp: no such file or directory: /home/sebastien/Desktop/Stample-react/cordova/res/www/stample_splash.png

Изменить : вы должны использовать 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 Кб.

В чем разница при использовании тега платформы и атрибута платформы

<icon src="icon.png" platform="android" density="ldpi" />

такой же как

<platform name="android">
    <icon src="www/stample_icon.png" density="ldpi" />
</platform>

Следует ли использовать пространство имен 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

<?xml version='1.0' encoding='utf-8'?>
<widget id="co.x" version="0.2.6" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:gap="http://phonegap.com/ns/1.0">
    <name>x</name>
    <description>
        x
    </description>
    <author email="info@x.co" href="https://x.co">
        x
    </author>
    <content src="index.html" />
    <preference name="permissions"                  value="none" />
    <preference name="webviewbounce"                value="false" />
    <preference name="StatusBarOverlaysWebView"     value="false" />
    <preference name="StatusBarBackgroundColor"     value="#0177C6" />
    <preference name="detect-data-types"            value="true" />
    <preference name="stay-in-webview"              value="false" />
    <preference name="android-minSdkVersion"        value="14" />
    <preference name="android-targetSdkVersion"     value="22" />
    <preference name="phonegap-version"             value="cli-5.1.1" />

    <preference name="SplashScreenDelay"            value="10000" />
    <preference name="SplashScreen"                 value="screen" />


    <plugin name="cordova-plugin-device"                spec="1.0.1" />
    <plugin name="cordova-plugin-console"               spec="1.0.1" />
    <plugin name="cordova-plugin-whitelist"             spec="1.1.0" />
    <plugin name="cordova-plugin-crosswalk-webview"     spec="1.2.0" />
    <plugin name="cordova-plugin-statusbar"             spec="1.0.1" />
    <plugin name="cordova-plugin-screen-orientation"    spec="1.3.6" />
    <plugin name="cordova-plugin-splashscreen"          spec="2.1.0" />

    <access origin="http://*" />
    <access origin="https://*" />

    <access launch-external="yes" origin="tel:*" />
    <access launch-external="yes" origin="geo:*" />
    <access launch-external="yes" origin="mailto:*" />
    <access launch-external="yes" origin="sms:*" />
    <access launch-external="yes" origin="market:*" />

    <platform name="android">
        <icon src="www/stample_icon.png" density="ldpi" />
        <icon src="www/stample_icon.png" density="mdpi" />
        <icon src="www/stample_icon.png" density="hdpi" />
        <icon src="www/stample_icon.png" density="xhdpi" />
        <icon src="www/stample_icon.png" density="xxhdpi" />
        <icon src="www/stample_icon.png" density="xxxhdpi" />
        <splash src="www/stample_splash.png" density="land-hdpi"/>
        <splash src="www/stample_splash.png" density="land-ldpi"/>
        <splash src="www/stample_splash.png" density="land-mdpi"/>
        <splash src="www/stample_splash.png" density="land-xhdpi"/>
        <splash src="www/stample_splash.png" density="land-xhdpi"/>
        <splash src="www/stample_splash.png" density="land-xhdpi"/>
        <splash src="www/stample_splash.png" density="port-hdpi"/>
        <splash src="www/stample_splash.png" density="port-ldpi"/>
        <splash src="www/stample_splash.png" density="port-mdpi"/>
        <splash src="www/stample_splash.png" density="port-xhdpi"/>
        <splash src="www/stample_splash.png" density="port-xxhdpi"/>
        <splash src="www/stample_splash.png" density="port-xxxhdpi"/>
    </platform>

    <platform name="ios">
        <icon src="www/stample_icon.png" width="180" height="180" />
        <icon src="www/stample_icon.png" width="60" height="60" />
        <icon src="www/stample_icon.png" width="120" height="120" />
        <icon src="www/stample_icon.png" width="76" height="76" />
        <icon src="www/stample_icon.png" width="152" height="152" />
        <icon src="www/stample_icon.png" width="40" height="40" />
        <icon src="www/stample_icon.png" width="80" height="80" />
        <icon src="www/stample_icon.png" width="57" height="57" />
        <icon src="www/stample_icon.png" width="114" height="114" />
        <icon src="www/stample_icon.png" width="72" height="72" />
        <icon src="www/stample_icon.png" width="144" height="144" />
        <icon src="www/stample_icon.png" width="29" height="29" />
        <icon src="www/stample_icon.png" width="58" height="58" />
        <icon src="www/stample_icon.png" width="50" height="50" />
        <icon src="www/stample_icon.png" width="100" height="100" />
        <splash src="www/stample_splash.png" width="320" height="480"/>
        <splash src="www/stample_splash.png" width="640" height="960"/>
        <splash src="www/stample_splash.png" width="768" height="1024"/>
        <splash src="www/stample_splash.png" width="1536" height="2048"/>
        <splash src="www/stample_splash.png" width="1024" height="768"/>
        <splash src="www/stample_splash.png" width="2048" height="1536"/>
        <splash src="www/stample_splash.png" width="640" height="1136"/>
        <splash src="www/stample_splash.png" width="750" height="1334"/>
        <splash src="www/stample_splash.png" width="1242" height="2208"/>
        <splash src="www/stample_splash.png" width="2208" height="1242"/>
    </platform>

    <allow-intent href="*" />
    <engine name="browser" spec="^3.6.0" />
    <engine name="android" spec="^4.0.2" />
</widget>

Хорошим источником примеров являются стартовые комплекты. Как начало разговора по телефону или ионный пускатель

Себастьян Лорбер
источник
2
Я создал небольшую утилиту cli (среди многих других), которая обрабатывает значок приложения, экран-заставку и создание предварительного просмотра https://github.com/mmacmillan/cordova-imaging , я упоминаю об этом, потому что он управляется файлом конфигурации, который хорошо документирован относительно размеры / размеры / расположение, а также ссылки на документацию по платформе; это может помочь дополнить подробный ответ, на который вы нашли время,
Майк Макмиллан
Я сделал все это, с Cordova 5.1 файлы копируются в .apk, как вы упомянули, но планшет все равно не показывает новый значок. Любые идеи?
Gringo Suave
Что нужно было сделать, так это удалить старую версию приложения, а затем установить новую версию. Потом планшет заметил что-то изменилось. Итак, я смог получить новую иконку.
Gringo Suave
1
Какой фантастический ответ! Я использовал ваше предложение, cordova build android --verboseчтобы определить и решить мою проблему. Благодарность!
Сара
Хороший ответ Себастьен;) палец вверх
Алаэддин
32

Начиная с Cordova 3.5.0-0.2.6 <icon />элемент config.xml работает со следующими оговорками:

  1. srcАтрибут представляет собой путь относительно корневой папки проекта. Средство отслеживания проблем об этой проблеме, причина изменения.

  2. <icon src="..." />Элемент без разрешения / точек на дюйм документирована в качестве значка используется для всех платформ , как значок по умолчанию. Однако в сборках Android значок по умолчанию копируется только в папку с возможностью переноса Android без определенных разрешений. Это заставляет ваш пользовательский значок отображаться в /res/drawableпапке, а значок Cordova по умолчанию с определенными разрешениями существует в других папках внутри окончательного apk (т.е. /res/drawable-ldpi). Вы должны добавить один элемент значка config.xmlдля каждого разрешения на платформе Android.

Например, если ваше изображение значка находится в пути www/res/img/icon.pngотносительно вашего корневого проекта, эти строки config.xmlзаставляют ваш значок приложения в Android работать:

<!-- Default application icon -->
<icon src="www/res/img/icon.png" />
<!--
    Default icon should work, but cordova don't overwrite
    the default on all densities
-->
<icon src="www/res/img/icon.png" platform="android" density="ldpi" />
<icon src="www/res/img/icon.png" platform="android" density="mdpi" />
<icon src="www/res/img/icon.png" platform="android" density="hdpi" />
<icon src="www/res/img/icon.png" platform="android" density="xhdpi" />

При такой конфигурации у вас может быть один значок изображения для всех разрешений, перезаписывающий значок кордовы по умолчанию, и без пользовательских крючков. Простое построение с использованием cordova build androidдолжно сделать свое дело.

Роноальдо Перейра
источник
У вас есть ссылка на отчет об ошибке для вопроса 2? Я только что столкнулся с этой проблемой в новом проекте, и сначала это меня смутило. Хотел бы следить за прогрессом, чтобы знать, когда это будет исправлено, если это возможно. Ура.
Майк
OMG наконец-то заставил его работать! Спасибо за 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" />
Tha Leang
@Ronoaldo Periera, ты мой спаситель !! <icon ..> для каждой плотности! блестящий !!
Hittz
Значок src по умолчанию не работает на Android, поэтому его игнорируют! Проверьте мой ответ здесь: stackoverflow.com/a/31674547/82609
Себастьян Лорбер,
8

Если вам нужен простой в использовании способ автоматического добавления значков при локальной сборке ( cordova emulate ios, cordova run androidи т. Д.), Взгляните на эту суть:

https://gist.github.com/LinusU/7515016

Надеюсь, когда-нибудь в будущем это начнет работать из коробки, вот соответствующий отчет об ошибке в проекте Cordova:

https://issues.apache.org/jira/browse/CB-2606

Линус Уннебек
источник
Линус, как объясняется в моем ответе, да, теперь он работает, но, похоже, что-то сломалось, проверьте stackoverflow.com/a/31674547/82609
Себастьен Лорбер
4

Вам необходимо создать файл config.xml, в который вы должны поместить файл значка

<?xml version="1.0" encoding="ISO-8859-1" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
   xmlns:gap = "http://phonegap.com/ns/1.0"
   id        = "example"
   version    = "1.0.0">

   <icon src="icon.png" />
</widget>

Проверьте это: https://build.phonegap.com/docs/config-xml

есть специальные значки iOS

Жоао Пиментел Феррейра
источник
мой файл конфигурации уже содержит все значки. он создается по умолчанию при создании нового проекта телефонного разговора
Маркус
2
Не работает. Он работал с PG Build, но Cordova 3.x cli не принимает во внимание значки, указанные в config.xml (а также icon.png и screen.png в корне). Также ищу ответ на этот вопрос.
lefnire
Ага config.xml предназначен только для сборки PhoneGap! кто-нибудь знает, как это сделать ?!
Майкл
На Cordova 3.5.0-0.2.6 поддержка значков работает с некоторыми оговорками на Android. Подробности смотрите в моем ответе.
Ronoaldo Pereira
4

Поскольку большинство ответов здесь нацелены на 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 тоже не помогло.

Эликсандр Чен
источник
3

Я использую phonegap 3.1.0-0.15.0, поскольку iOS7 изменил разрешение на 120x120 пикселей, я просто добавил файл с этими размерами в проект, а затем изменил файл info.plist.

  1. Добавьте в проект файл размером 120x120, щелкнув правой кнопкой мыши файл проекта в Xcode и выбрав «Добавить файлы в« [Имя вашего проекта] »...
  2. Перейдите к файлу info.plist в Xcode «Ресурсы / [Имя вашего проекта] -info.plist»
  3. В разделе «Файлы значков (iOS 5) / Основные файлы значков / значков» измените «Элемент 2» на любое имя файла, которое было у вашего файла (я назвал свой «icon-120.png», который я поместил в папку Project вместе со всеми другими значками. , хотя это не должно иметь значения)

Более подробную информацию можно найти здесь: http://www.digifloor.com/missing-recommended-icon-file-error-ios-app-13

Чтобы исправить заставку в iOS, я просто вставил новые файлы с такими же размерами и именами файлов, перезаписав старые. Просто не забудьте перейти в Product> Clean в строке меню в Xcode (сочетание клавиш Shift + Command + K), и все должно работать нормально! :)

Luddig
источник
3

В кордове 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 имеет наибольший смысл, но то, что мне кажется, вызвано этой серией каскадных и сбивающих с толку вариантов дизайна / недостатков.

МистериДевлорд
источник
2

в некоторых случаях внутренние скрипты Cordova не помещают значки в нужную папку, поэтому вы можете увидеть робота F *** Cordova вместо своего собственного значка.

Используйте скрипт перехвата .;)

три крючка-ваш-кордова-телефон-проект-потребности

Создайте папку «after_platform_add» в папке хуков и поместите / измените последний скрипт от devgirl.

Не забудьте установить исполнительные права для скрипта в linux "chmod 777 <script>"

удачи!

Масуд Мошреф
источник
1

Все, что я сделал, это добавил следующие строки в config.xml <icon src="www/img/appIcon.png" />

И все работало нормально

Али Садик
источник
Спасибо, чувак. Я попытался поместить один значок в res / icon.png (как в примерах документации ...), и он никогда не работал на ios. В конце концов я отказался от этой запутанной папки «res» и поместил значок под «www», как вы предложили, и это сработало и для меня тоже! Это работает для Cordova 6.0.0. Платформа iOS.
firepol
1

Просто добавьте этот код в свой файл config.xml

<icon src="path to your icon image">

например:

<icon src="icon.png">

Помните, что вам нужно использовать расширение .png

Jobincs
источник
попробуйте использовать изображения png
Jobincs
0

Я также пытаюсь понять, как все это связано.

Вот что я до сих пор нашел в 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» (который теперь находится в корне вашего проекта, он был автоматически добавлен в корень, когда вы выполняли перетаскивание.

Соберите, и у вас должен появиться обновленный значок приложения.

Сэм Цай
источник
Я построил проект с помощью Cordova 3.0.3, но я полагаю, что то же самое и со сборками телефонного разговора.
Сэм Цай
0

Просто отмечу, что я только что изменил свой 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. На данный момент я могу утверждать, что это самый близкий к успеху успех.

Майкл Бланкеншип
источник