J'ai un projet Cordova fraîchement créé avec la configuration config.xml
Suivante (utilisé les instructions de http://docs.phonegap.com/en/Edge/config_ref_images.md.html ). J'ai également ajouté 2 plateformes (iOS et Android).
Lorsque j'exécute cordova run ios
Ou cordova run Android
, Le projet a toujours les icônes Cordova par défaut. Ma compréhension de la documentation est que Corodva est censé créer automatiquement les icônes basées sur le icon.png
Que j'ai fourni dans le config.xml
.
config.xml
:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.testapp" version="1.1.2" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.Apache.org/ns/1.0">
<name>SingleApp</name>
<preference name="DisallowOverscroll" value="true" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="Orientation" value="portrait" />
<preference name="Fullscreen" value="false" />
<preference name="target-device" value="handset" />
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="[email protected]" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<access Origin="*" />
<icon src="icon.png" />
</widget>
J'ai écrit un script qui génère automatiquement des icônes pour cordova en utilisant ImageMagick:
https://github.com/AlexDisler/cordova-icon
Pour l'utiliser, créez un fichier "icon.png" et placez-le dans le dossier racine de votre projet, puis lancez:
cordova-icon
et il générera toutes les icônes requises pour les plateformes de votre projet.
Vous pouvez également le configurer comme un crochet dans votre projet cordova afin que les icônes soient générées à chaque fois que vous générez le projet en fonction du icon.png que vous avez ajouté. (instructions dans le fichier lisez-moi).
Si vous utilisez cordova 3.5.0, ils ont mis à jour les documents. Dans les anciennes versions, j'ai toujours dû remplacer les icônes manuellement dans le projet, mais la dernière version de cordova fonctionne bien.
http://cordova.Apache.org/docs/en/3.5.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens
Comme vous pouvez le voir ici https://github.com/phonegap/phonegap-cli/issues/58 cela a été un problème courant. Donc, si vous utilisez une ancienne version de cordova, je recommande de la mettre à jour avec la commande npm update -g cordova
Et après cela, vous devez mettre à jour votre config.xml pour quelque chose comme ceci:
<icon src="www/res/drawable-xxxhdpi/icon.png" />
<platform name="Android">
<icon src="www/res/drawable-ldpi/icon.png" density="ldpi" />
<icon src="www/res/drawable-mdpi/icon.png" density="mdpi" />
<icon src="www/res/drawable-hdpi/icon.png" density="hdpi" />
<icon src="www/res/drawable-xhdpi/icon.png" density="xhdpi" />
</platform>
<platform name="ios">
<!-- iOS 7.0+ -->
<!-- iPhone / iPod Touch -->
<icon src="www/res/ios/icon-60.png" width="60" height="60" />
<icon src="www/res/ios/[email protected]" width="120" height="120" />
<!-- iPad -->
<icon src="www/res/ios/icon-76.png" width="76" height="76" />
<icon src="www/res/ios/[email protected]" width="152" height="152" />
<!-- iOS 6.1 -->
<!-- Spotlight Icon -->
<icon src="www/res/ios/icon-40.png" width="40" height="40" />
<icon src="www/res/ios/[email protected]" width="80" height="80" />
<!-- iPhone / iPod Touch -->
<icon src="www/res/ios/icon.png" width="57" height="57" />
<icon src="www/res/ios/[email protected]" width="114" height="114" />
<!-- iPad -->
<icon src="www/res/ios/icon-72.png" width="72" height="72" />
<icon src="www/res/ios/[email protected]" width="144" height="144" />
<!-- iPhone Spotlight and Settings Icon -->
<icon src="www/res/ios/icon-small.png" width="29" height="29" />
<icon src="www/res/ios/[email protected]" width="58" height="58" />
<!-- iPad Spotlight and Settings Icon -->
<icon src="www/res/ios/icon-50.png" width="50" height="50" />
<icon src="www/res/ios/[email protected]" width="100" height="100" />
</platform>
Comme vous pouvez le voir, les URI sont relatifs au chemin du projet cordova, pas au dossier www.
Le config.xml
les paramètres des icônes ne fonctionnent qu'avec le service PhoneGap Build. Après avoir ajouté vos deux plates-formes, vous devez manuellement (ou vous pouvez créer un crochet, mais je ne l'ai pas fait moi-même) placer vos icônes dans les bons chemins.
Pour iOS:
PROJECT_PATH/platforms/ios/PROJECT_NAME/Resources/icons
Pour Android:
PROJECT_PATH/platforms/Android/res/drawable
Android a de nombreux res/drawable-*
dossiers, utilisez tel qu'appliqué à votre application mais ajoutez au moins res/drawable
Exécutez ensuite cordova prepare
ou build
ou run
Si vous souhaitez installer un logiciel supplémentaire pour la génération d'icônes, vous pouvez utiliser Ionic qui a une telle fonction.
Procédez comme suit:
npm install ionic -g
${project_location}/resources
ionic resources
Si vous souhaitez générer uniquement des icônes, il existe une clé pratique pour cela:
ionic resources --icon
Plus de détails ici
N'avez-vous pas besoin de spécifier le dossier sur lequel figure l'icône? Cordova remplace l'icône par défaut lorsqu'elle n'est pas trouvée.
Avez-vous essayé de remplacer par quelque chose comme:
<icon src="res/icon.png" />
Essayez de suivre https://www.npmjs.org/package/cordova-gen-icon
Exemple:
$ cordova create hello com.example.hello
Creating a new cordova project with name "HelloCordova" and id "com.example.hello" at location "hello"
$ cd hello
$ cordova platform add ios
Creating ios project...
Preparing ios project
$ cordova-gen-icon
Generate cordova icons with
project: .
icon : ./www/img/logo.png
target :
generate iOS icons
Success generate icon set
Une petite explication pour les gens qui disent <icon src="res/icon.png" />
Ne marche pas!
Vous devez mettre icon.png dans ces deux dossiers
nom_projet/res /
et
nom_projet/plateformes/nom_plateforme/res /
Pas:
cordova create hello com.example.hello HelloWorld
cd hello
Copiez votre icon.png dans project_name/res/
Ouvrir config.xml
et met <icon src="res/icon.png" />
Après cette course
cordova platform add Android
Copiez maintenant votre icon.png dans ... hello/platforms/Android/res/
puis
cordova build Android
et enfin
adb install platforms/Android/build/outputs/apk/Android-debug.apk
Après cela, vous pouvez voir sur votre appareil votre application avec votre icône