Come aggiungere l'icona dell'app nei progetti di phonegap?


85

Ho creato un nuovo progetto phonegap (v 3.0.0-0.14.0) con config.xml predefinito e poi ho aggiunto piattaforme iOS e Android.

La configurazione contiene tutti i percorsi a tutte le icone della piattaforma.

Ho sovrascritto le icone predefinite per iOS e Android in modo che il percorso e il nome corrispondano ancora a quei png.

Quando si esegue nel simulatore, le icone non vengono visualizzate. L'ho cercato in xCode dove mi dice che la cartella "Risorse" per le icone contiene ancora le icone predefinite di phonegap. Lo stesso con Android.

Che cosa sto facendo di sbagliato?

Come posso aggiungere icone di app personalizzate per iOS e Android con phonegap?

Grazie

il mio 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
è questo? la build locale ignora il file di configurazione? stackoverflow.com/questions/15018098/…
Markus

Markus ha ragione, il suo commento dovrebbe essere una risposta
drodsou

1
Mi sono preso del tempo per creare una FAQ su tutto ciò che dovresti sapere per eseguire il debug / far funzionare le icone (cordova 5.1.1). Controlla stackoverflow.com/a/31674547/82609
Sebastien Lorber

Risposte:


67

Fortunatamente c'è un po 'nei documenti sulle immagini splash, che mi ha messo sulla strada per ottenere la giusta posizione anche per le immagini delle icone. Quindi eccolo qui.

Posizione dei file Dopo aver creato il progetto utilizzando l'interfaccia a riga di comando "cordova build ios", dovresti avere una struttura di file completa per la tua app iOS nella platforms/ios/cartella.

All'interno di quella cartella c'è una cartella con il nome della tua app. Che a sua volta contiene una resources/directory in cui troverai le cartelle icons/e splashscreen/.

Nella cartella delle icone troverai quattro file di icone (per 57px e 72 px, ciascuno in versione normale e @ 2x). Queste sono le icone segnaposto Phonegap che hai visto finora.

Cosa fare

Tutto quello che devi fare è salvare i file delle icone in questa cartella. Così è:

YourPhonegapProject/Platforms/ios/YourAppName/Resources/icons

Lo stesso per i file splashscreen.

Appunti

  1. Dopo aver posizionato i file lì, ricostruisci il progetto usando cordova build iosE usa il comando di menu "Pulisci prodotto" di xCode. Senza questo, vedrai ancora i segnaposto Phonegap.

  2. È più saggio rinominare i file nel modo iOS / Apple (ad esempio icon-72@2x.png ecc.) Invece di modificare i nomi in info.plist o config.xml. Almeno per me ha funzionato.

  3. E a proposito, ignora il percorso strano e il nome del file strano dato per le icone in config.xml (cioè <icon gap:platform="ios" height="114" src="res/icon/ios/icon-57-2x.png" width="114" />). Ho appena lasciato quelle definizioni lì e le icone sono apparse perfettamente anche se la mia icona di 114px era stata nominata icon@2x.pnginvece di icon-57-2x.png.

  4. Non utilizzare config.xml per impedire l'effetto lucido di Apple sull'icona. Spunta invece la casella in xCode (fai clic sul titolo del progetto nella colonna di navigazione a sinistra, seleziona la tua app sotto l'intestazione Target e scorri verso il basso fino alla sezione delle icone).


lasciare i nomi dei file in config.xml non interromperà la build con il servizio di compilazione phonegap? funziona solo perché la build locale ignora il file config.xml. cosa succede se phonegap decide di leggerlo? Suggerirei di copiare quei file con una sorta di processo di compilazione.
Markus

1
Ciao Markus, non ho esperienza con il servizio Phonegap Build (tranne per il fatto che è stato sconcertante quando l'ho provato brevemente e senza successo). Quindi non posso giudicare il tuo commento, ma ti credo sulla parola. Pertanto la mia risposta è mirata solo a coloro che fanno le proprie build.
Wytze

1
Questa risposta è obsoleta (ma funziona per 3.0.0). Nessun processo manuale è più necessario per gestire questo. Controlla il documento di bordo e la mia risposta qui stackoverflow.com/a/31674547/82609
Sebastien Lorber

46

FAQ: SCHERMO ICONA / SPLASH (Cordova 5.x / 2015)

Presento la mia risposta come una FAQ generale che può aiutarti a risolvere molti problemi che ho riscontrato durante l'utilizzo di icone / schermate iniziali. Potresti scoprire come me che la documentazione non è sempre molto chiara né aggiornata. Questo probabilmente andrà alla documentazione di StackOverflow quando disponibile.

Primo: rispondere alla domanda

Come posso aggiungere icone di app personalizzate per iOS e Android con phonegap?

Nella tua versione di Cordova il icontag è inutile. Non è nemmeno documentato in Cordova 3.0.0. Dovresti usare la versione della documentazione che si adatta al cli che stai usando e non l'ultima!

Il tag icon non funziona affatto per Android prima della versione 3.5.0 secondo quanto posso vedere nelle diverse versioni della documentazione. In 3.4.0 consigliano ancora di copiare manualmente i file

Nelle versioni più recenti : il tuo config.xmlaspetto è migliore per le nuove versioni di Cordova. Tuttavia ci sono ancora molte cose che potresti voler sapere. Se decidi di aggiornare ecco alcune cose utili da modificare:

  • Non hai bisogno dello gap:spazio dei nomi
  • Hai bisogno <preference name="SplashScreen" value="screen" />per Android

Ecco ulteriori dettagli sulle domande che potresti chiederti quando cerchi di gestire le icone e la schermata iniziale:

Posso usare una vecchia versione di Cordova / Phonegap

No, la funzione icona / splashscreen non era nelle versioni precedenti di Cordova, quindi devi usare una versione recente. Nelle versioni precedenti, solo Phonegap Build gestiva le icone / schermata iniziale, quindi la creazione locale e la gestione delle icone era possibile solo con un hook. Non conosco la versione minima per utilizzare questa funzione ma con 5.1.1 funziona bene sia in Cordova / Phonegap cli. Con Cordova 3.5 non ha funzionato per me.

Modifica : per Android devi usare almeno 3.5.0

Come posso eseguire il debug del processo di creazione delle icone?

La cli usa un comando CP. Se fornisci un percorso dell'icona non valido, verrà visualizzato un cperrore:

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

Modifica : è necessario cordova build <platform> --verboseottenere i registri dell'utilizzo del comando cp per vedere dove vengono copiate le icone

Le icone dovrebbero andare in una cartella secondo il file config. Per me va in molte sottocartelle in:platforms/android/build/intermediates/res/armv7/debug/drawable-hdpi-v4/icon.png

Quindi puoi trovare l'APK e aprirlo come archivio zip per verificare che le icone siano presenti. Devono essere in una res/drawable*cartella perché è una cartella speciale per Android.

Dove devo mettere le icone / schermate iniziali nel mio progetto?

In molti esempi troverai le icone / schermate iniziali dichiarate all'interno di una rescartella. Questa resè una cartella Android speciale nell'APK di output, ma non significa che devi usare una rescartella nel tuo progetto.

Puoi mettere la tua icona ovunque, ma il percorso che usi deve essere relativo alla radice del progetto , e non è wwwcosì attento! Questo è documentato, ma non chiaramente perché tutti gli esempi stanno usando rese non sai dove si trova questa cartella :(

Voglio dire, se metti l'icona in www/icon.pngte devi assolutamente includerla wwwnel tuo percorso.

Modifica Mars 2016 : dopo aver aggiornato le mie versioni, ora sembra che le icone siano relative alla wwwcartella ma la documentazione non è stata modificata ( problema )

Funziona <icon src="icon.png"/>?

No non lo fa! .

Su Android, sembra che funzionasse prima (quando l'attributo di densità non era ancora supportato?) Ma non più. Vedi questo problema di Cordova

Su iOS, sembra che l'utilizzo di questa dichiarazione globale possa sovrascrivere dichiarazioni più specifiche, quindi fai attenzione e crea con --verboseper assicurarti che tutto funzioni come previsto.

Posso usare lo stesso file di icona / schermata iniziale per tutte le densità.

Si, puoi. Puoi anche usare lo stesso file sia per l'icona che per la schermata iniziale (solo per testare!). Ho usato un file icona "grande" di 65kb senza alcun problema.

Qual è la differenza quando si utilizza il tag della piattaforma rispetto all'attributo della piattaforma

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

equivale a

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

Devo usare il gap: namespace se uso Phonegap?

Nella mia esperienza le nuove versioni di Phonegap o Cordova sono entrambe in grado di comprendere le dichiarazioni di icone senza utilizzare alcuno gap:spazio dei nomi xml.

Tuttavia sto ancora aspettando una risposta valida qui: cordova / phonegap plugin add VS config.xml

Per quanto ho capito, alcune funzionalità con lo gap:spazio dei nomi potrebbero essere disponibili prima in PhonegapBuild, quindi in Phonegap e quindi essere portate su Cordova (?)

È <preference name="SplashScreen" value="screen" />richiesto?

Almeno per Android sì, lo è. Ho aperto un problema con spiegazioni aggiuntive.

L'ordine di dichiarazione delle icone è importante?

Sì lo fa! Potrebbe non avere alcun impatto su Android ma ha su iOS secondo i miei test. Questo è un comportamento imprevisto e non documentato, quindi ho aperto un altro problema .

Mi serve cordova-plugin-splashscreen?

Sì, è assolutamente necessario se vuoi che la schermata iniziale funzioni. La documentazione non è chiara ( problema ) e pensiamo che il plugin sia richiesto solo per offrire un'API javascript con schermata iniziale.

Come posso ridimensionare velocemente le immagini per tutte le larghezze / altezze / densità

Ci sono strumenti per aiutarti a farlo. Il migliore per me è http://makeappicon.com/ ma richiede di fornire un indirizzo email.

Altre possibili soluzioni sono:

Puoi darmi un esempio di configurazione?

Sì. Ecco il mio veroconfig.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>

Una buona fonte di esempi sono gli starter kit. Come il phonegap-start o lo ionico


2
ho creato una piccola utilità cli (tra molte altre), che gestisce l'icona dell'app, la schermata iniziale e la generazione di anteprime https://github.com/mmacmillan/cordova-imaging , lo dico perché è guidato da un file di configurazione ben documentato per quanto riguarda le dimensioni / dimensioni / posizioni e contiene collegamenti alla documentazione specifica della piattaforma; questo può aiutare a completare la risposta dettagliata che hai dedicato del tempo a fornire
Mike MacMillan,

Ho fatto tutto questo, con Cordova 5.1, i file vengono copiati in .apk come hai detto, ma il tablet non mostra ancora la nuova icona. Qualche idea?
Gringo Suave

Quello che è necessario fare è disinstallare la vecchia versione dell'app, quindi installare la nuova versione. Poi il tablet ha notato che qualcosa è cambiato. Quindi, sono stato in grado di ottenere la nuova icona.
Gringo Suave

1
Che fantastica risposta! Ho utilizzato il tuo suggerimento cordova build android --verboseper identificare e risolvere il mio problema. Grazie!
Sarah

Bella risposta Sebastien;) pollice in alto
Alaeddine

32

A partire da Cordova 3.5.0-0.2.6 l' <icon />elemento in config.xml funziona con i seguenti avvertimenti:

  1. L' srcattributo è un percorso relativo alla cartella principale del progetto. Il tracker di problemi su questo problema è il motivo per cui la modifica

  2. L' <icon src="..." />elemento senza risoluzione / dpi è documentato come l'icona utilizzata da tutte le piattaforme come icona predefinita. Tuttavia, nelle build di Android, l'icona predefinita viene copiata solo nella cartella disegnabile di Android, senza impostare risoluzioni specifiche. Questo fa apparire l'icona personalizzata nella /res/drawablecartella e l'icona predefinita di cordova con risoluzioni specifiche esiste nelle altre cartelle all'interno dell'apk finale (cioè /res/drawable-ldpi). È necessario aggiungere un elemento icona config.xmlper ogni risoluzione sulla piattaforma Android.

Ad esempio, se la tua immagine dell'icona si trova nel percorso www/res/img/icon.pngrelativo al tuo progetto principale, questa riga in config.xmlfa sì che l'icona della tua app in Android funzioni:

<!-- 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" />

Con quella configurazione in atto, è possibile avere una singola icona di immagine per tutte le risoluzioni sovrascrivendo l'icona di cordova predefinita e senza hoook personalizzati. Semplicemente costruire con cordova build androiddovrebbe fare il trucco.


Hai un link per la segnalazione di bug per il problema 2? Ho appena riscontrato questo problema su un nuovo progetto e all'inizio mi ha confuso. Vorrei seguire i progressi per sapere quando è stato risolto, se possibile. Saluti.
Mike

omg finalmente ha funzionato! Grazie per density. Sono cambiato <icon gap:platform="android" gap:qualifier="ldpi" src="www/res/icon/android/icon-36-ldpi.png" />in<icon gap:platform="android" density="ldpi" src="www/res/icon/android/icon-36-ldpi.png" />
Tha Leang

@Ronoaldo Periera your'e my savior !! tag <icon ..> per ogni densità! brillante!!
Hittz

L'icona predefinita src non funziona bene per Android, quindi in realtà viene ignorata! Controlla la mia risposta qui: stackoverflow.com/a/31674547/82609
Sebastien Lorber,

8

Se volete un modo semplice da usare per aggiungere le icone automaticamente durante la creazione a livello locale ( cordova emulate ios, cordova run android, ecc) hanno uno sguardo a questo succo:

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

Si spera che questo inizierà a funzionare immediatamente in futuro, ecco il relativo bug report sul progetto Cordova:

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


Linus, come è spiegato nella mia risposta sì, ora funziona ma sembra anche aver rotto alcune cose, controlla stackoverflow.com/a/31674547/82609
Sebastien Lorber

4

Devi creare un file config.xml in cui inserire il file icona

<?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>

Controlla questo: https://build.phonegap.com/docs/config-xml

ci sono icone specifiche per iOS


il mio file di configurazione contiene già tutte le icone. viene creato per impostazione predefinita quando si crea un nuovo progetto phonegap
Markus

2
Non funziona Ha funzionato con PG Build, ma Cordova 3.x cli non prende in considerazione le icone specificate in config.xml (né icon.png e screen.png in root). Anche cercando la risposta a questa domanda.
lefnire

Sì config.xml è solo per PhoneGap Build! qualcuno sa come farlo ?!
Michael

Su Cordova 3.5.0-0.2.6 il supporto per l'icona funziona, con alcuni avvertimenti su Android. Vedi la mia risposta per i dettagli.
Ronoaldo Pereira

4

Poiché la maggior parte delle risposte qui sono mirate a iOS, ecco una soluzione per cambiare icona in Android.

Per Android:

Apporta modifiche in <percorso progetto> \ piattaforme \ android \ ant-build \ res e non <percorso progetto> \ piattaforme \ android \ res

Per alcune persone che hanno apportato modifiche in quest'ultima posizione potrebbero aver funzionato, ma avendo notato che Phonegap copia da \ android \ res a \ android \ ant-build \ res, ho deciso di fare il check-in lì e ho trovato un set separato di cartelle disegnabili contenente l'impostazione predefinita icona phonegap.

Cambiare quelli finalmente ha funzionato.

Poiché sto creando ed eseguendo localmente e non utilizzando Adobe PhoneGap Build, anche la modifica delle icone in <percorso progetto> \ www \ res \ icon \ android non ha funzionato.


3

Sto eseguendo phonegap 3.1.0-0.15.0, poiché iOS7 ha cambiato la risoluzione a 120x120px ho appena aggiunto un file con quelle dimensioni al progetto, quindi ho cambiato il file info.plist.

  1. Aggiungi un file 120x120 al progetto, facendo clic con il pulsante destro del mouse sul file di progetto in Xcode e selezionando "Aggiungi file a" [Nome progetto] "...
  2. Vai al file info.plist in Xcode "Resources / [Your Project Name] -info.plist"
  3. In "File icona (iOS 5) / Icona principale / File icona" cambia "Elemento 2" con il nome file del tuo file (ho chiamato mio "icon-120.png che ho posizionato nella cartella Progetto accanto a tutte le altre icone , anche se questo non dovrebbe importare)

Maggiori informazioni possono essere trovate qui: http://www.digifloor.com/missing-recommended-icon-file-error-ios-app-13

Per correggere la schermata iniziale in iOS ho appena incollato nuovi file con le stesse dimensioni e gli stessi nomi di file, sovrascrivendo quelli vecchi. Ricorda solo di andare su Prodotto> Pulisci nella barra dei menu in Xcode (scorciatoia Maiusc + Comando + K) e dovrebbe funzionare bene! :)


3

In cordova 3.3.1-0.1.2 il comportamento previsto non funziona correttamente.

nel

http://cordova.apache.org/docs/en/3.3.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens

indica chiaramente che si suppone di inserirli nella cartella www principale in una cartella chiamata res e icone che seguono una particolare convenzione di denominazione invece del modo specificato config.xml personalizzabile originale (in cui si punta a un file di propria scelta, che era / è molto meglio). dovrebbe quindi prendere da lì per ogni piattaforma e inserirli nelle piattaforme /? android? / res / drawable-? dpi / icon.png ma al momento non ha un comportamento così corretto ... bug.

quindi immagino che dobbiamo inserirli manualmente per ogni piattaforma. ovviamente sarebbe necessario rimuoverlo dalla duplicazione nella cartella www. per me ho dovuto sostituire totalmente il contenuto nella cartella principale www comunque perché semplicemente non funzionava nemmeno con hello world senza hackerare un reindirizzamento index.html per trovare qualche strana cartella casuale lì. Mettere la cartella res accanto a www ha più senso, ma quello che sembra essere per me causato da questa serie di scelte / difetti di progettazione a cascata e confusi.


2

in alcuni casi gli script interni di cordova non mettono le icone nella cartella giusta, quindi puoi vedere il f *** cordova robot invece della tua icona.

Usa lo script hook .;)

tre ganci-il-tuo-cordovaphonegap-progetto-ha bisogno

Crea una cartella "after_platform_add" nella cartella hook e metti / cambia l'ultimo skript da devgirl.

Non dimenticare di impostare i diritti esecutivi per lo script, in Linux "chmod 777 <script>"

in bocca al lupo!


1

Tutto quello che ho fatto è stato aggiungere le righe seguenti in config.xml <icon src="www/img/appIcon.png" />

E ha funzionato perfettamente


Grazie uomo. Ho provato a mettere un'icona in res / icon.png (come negli esempi di documentazione ...) e non ha mai funzionato su ios. Alla fine ho rinunciato a quella confusa cartella "res" e ho messo l'icona sotto "www" come mi hai suggerito e ha funzionato alla grande anche per me! Questo funziona per Cordova 6.0.0. piattaforma ios.
firepol

1

Basta aggiungere questo codice nel file config.xml

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

per esempio:

<icon src="icon.png">

Tutti i modi ricordano che è necessario utilizzare l'estensione .png


prova a usare immagini png
Jobincs

0

Sto anche cercando di capire come tutto questo si collega.

Ecco cosa ho trovato finora in XCode, ma spero di essere corretto o affermato se le mie ipotesi sono corrette. Non ho trovato una build out of the box per xcode da cordova che applichi correttamente le icone. Come te ho aggiornato tutte le icone elencate nel config.xml ma nessun dado.

Così...

Innanzitutto, di solito aggiorno il config.xml nella radice del progetto con quello nella mia cartella "www" (questo lo faccio per incertezza che il www / config.xml abbia qualche precedenza o se sia addirittura applicato)

In secondo luogo, aggiorno le "fasi di costruzione" del progetto. Espandi "Copia risorse bundle", hai già notato tutte le immagini in "Risorse / icone", "Risorse / splash". Puoi:

  • rimuovi tutti questi per evitare di sovrascrivere le tue immagini OPPURE
  • aggiorna tutte queste immagini con le tue (rinominando il nome dell'immagine elencato)

Mentre stavo lavorando a questo, potresti essere in grado di aggiornare minimamente le immagini dalla scheda "Riepilogo".

Trascina e rilascia le tue immagini dalle cartelle di ricerca all'immagine appropriata nella scheda "Riepilogo". (res / icon / ios -> Icone app e res / screen / ios -> Launch Images). Lo faccio solo per iPhone poiché la mia app è solo per iPhone. Seleziona "prerenderizzato" se non vuoi che appaia il gloss.

Quindi aggiorna "icon.png" a cui fa riferimento il file plist del progetto: PROJECT_NAME-Info.plist o nella scheda "Info" quando guardi l'obiettivo del progetto. Rinominalo in "icon-57.png" (che ora risiede nella root del tuo progetto, questo è stato aggiunto automaticamente alla root quando hai fatto il drag-and-drop.

Costruisci e dovresti un'icona dell'app aggiornata.


Ho creato il progetto con Cordova 3.0.3, ma immagino che sia lo stesso con le build di phonegap.
Sam Tsai

0

Notando solo che ho appena cambiato il mio config.xml in modo che assomigli all'esempio di Sebastian.

Qualcosa che è anche utile nel debug di tutto questo, specialmente se non esegui build locali ... è scaricare i file XAP / IPA / APK come costruiti dal cloud PhoneGap e creare cartelle per ciascuno. Rinomina ogni file con estensione .ZIP ed estrai il contenuto di ciascuno nelle rispettive cartelle. Quindi, in pratica, ora puoi vedere cosa c'è nel pacchetto che verrà spedito al telefono.

In questo modo, posso vedere che per la piattaforma Microsoft Phone ignora in gran parte tutti i miei tentativi di sostituire l'icona o la schermata iniziale. Se quindi sostituisci ApplicationIcon.png e SplashScreenImage.jpg, quindi comprimi nuovamente il set di cartelle e rinominalo di nuovo come file .XAP, puoi quindi distribuirlo sul tuo telefono e funzionerà perfettamente. In qualche modo, c'è un modo per ottenere la build PhoneGap per trasformare icon.png e icon.jpg in quei due file. Forse il suggerimento di Masood è una possibilità qui e utilizza un copione hook.

Facendo lo stesso per il file .IPA (iOS) si ottengono diversi file come icon-something.png al livello principale sopra www. Sembrano tutti vuoti.

Facendo lo stesso per il file .APK (Android) si ottiene un insieme di cartelle res / drawable-something e sembra che in ognuna di esse sia presente il mio icon.png. È quanto di più vicino a un successo che possa vantare al momento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.