2011-11-09 1 views
8

Su PhoneGap su Android è possibile modificare la classe App.java per caricare qualsiasi url. Non riesco a trovare da nessuna parte per modificare il punto di ingresso sulla versione di iOS.PhoneGap su iOS è codificato per caricare www/index.html?

Durante il test, preferisco avere alcune directory "www" con impostazioni diverse. Al momento ho bisogno di rinominare le directory che è un po 'fastidioso.

risposta

5

Si potrebbe fare questo:

Creare l'index.html di default e lo hanno avvolgere e caricare il proprio root file HTML, in questo modo è possibile mantenere la propria struttura di directory e senza bisogno di fare alcuna modifica lì.

Ovviamente, phonegap è open source, quindi è possibile anche commettere una modifica a PhoneGap per modificare l'API di iOS simile all'API di Android. Attualmente sembra che il percorso del file html di root sia determinato in classe PhoneGapDelegate.m

+1

Ah .. Lo vedo ora in PhoneGapDelegate.m. Ok, questo risponde alla mia domanda. E anche questa è una buona soluzione. I voti migliori Grazie Hannes. – Tim

+1

Per gli altri .. il link a quel file è [qui] (https://github.com/purplecabbage/phonegap-iphone/blob/master/PhoneGapLib/Classes/PhoneGapDelegate.m) – Tim

+0

che il collegamento è ora [qui] (https://github.com/sintaxi/phonegap/blob/master/iphone/PhoneGapLib/Classes/PhoneGapDelegate.m) – Tim

8

PhoneGapDelegate.h definisce un metodo di classe startPage che è possibile sovraccaricare/ridefinire nel file AppDelegate.m dell'app iOS.

+ (NSString*) startPage; 

Ad esempio:

+ (NSString*) startPage{ 
    return @"http://m.google.com"; 
} 

ridefinirà la pagina iniziale in PhoneGap. Dovrai aggiungere google.com ai tuoi ExternalHosts in PhoneGap.plist. A partire da PhoneGap 1.2 Se lo fai e includi i plug-in nella tua app nativa, ospitali in modalità remota le app PhoneGap e i relativi * .js correlati saranno in grado di preformare le azioni del plugin. L'ho provato con BarcodeScanner, ChildBrowser e ApplicationPreferences.

UPDATE

Al 1.4.0 e 1.4.0, StartPage e wwwFolderName sono proprietà anziché metodi. Sono ancora ridefinibili, ma non è più possibile avere un punto startPage su un'installazione remota (non locale) di PhoneGap come nel mio esempio precedente. (Che è una specie di delusione)

+0

sì un delitto, ho anche letto apple respingerà la tua app se il codice è ospitato in remoto, vero? c'è un'alternativa all'ottenere il telecomando per lavorare e Apple non lo rifiuta? – sonjz

+0

A quanto ho capito, non è più il caso, e il codice che menzionano è codice nativo, non codice javascript in esecuzione in un UIWebView. Ci sono numerosi esempi che fanno questo. – mtwagner

+0

buono a sapersi, grazie per il chiarimento – sonjz

14

Come di PhoneGap 2.2, è ora possibile ignorare il tag <content> nel config.xml:

<content src="http://www.example.com" /> 
+0

è così semplice. –

+0

Non dovremmo essere in grado di impostarlo nel file www/config.xml predefinito? Le modifiche non vengono trasferite ai file config.xml di ciascuna piattaforma. – SgtPooki

1

si potesse fare

classe/AppDelegate.m

cambia self.viewController.startPage nella tua pagina iniziale in AppDelegate.m