2013-05-15 11 views
5

Stiamo sviluppando un'applicazione con Phoneegap 2.5.0 (poiché non esiste una versione più recente in Phonegap Build) e si stanno verificando problemi.Build PhoneGap App con PhoneGap Build avvisi con errori su iOS

L'app è una semplice app di test che utilizziamo per confrontare jQuery Mobile e Sencha Touch. Pertanto abbiamo creato un file index.html witch che contiene collegamenti a un jquery.html e a un sencha.html che implementa la stessa app con diversa interfaccia utente, ma che chiama gli stessi trigger di phonegap.

Abbiamo due configurazioni di build:

  • App è costruito localmente tramite Eclipse
  • App è costruito in linea tramite Phonegap Build

Usiamo lo stesso contenuto web come il nostro costruire localmente applicazione Android . Rimuoviamo solo l'elemento <script> che carica cordova.js per 2.5.0 e racchiude il contenuto con lo stesso config.xml che usiamo nell'app Android costruita localmente. L'app Android costruita localmente funziona perfettamente. I problemi si verificano solo quando l'app è costruita online per iOS tramite Phonegap Build. L'app Android ha creato opere online, come previsto. Solo iOS crea problemi.

Cosa accade su iOS:

  • index.html è caricato
  • siamo in grado di fare clic sul link che passa al jquery.html o sencha.html.
  • dopo il passaggio degli avvisi app con alcuni dialoghi in rotazione attraverso seguenti messaggi:
    1. gap:["Device","getDeviceInfo","Device455526479"]
    2. gap:["NetworkStatus","getConnectionInfo","NetworkStatus8103758"]
    3. gap:["App","show","App8103759"]
  • allora possiamo accedere alla app e addirittura sono in grado di ottenere il GPS corrente posizione.

Qualsiasi idea? Molte grazie!

nostro config.xml:

<?xml version="1.0" encoding="utf-8"?> 
<cordova> 
    <access origin="http://127.0.0.1*"/>; <!-- allow local pages --> 
    <access origin=".*"/> 
    <content src="index.html" /> 
    <log level="DEBUG"/> 
    <preference name="useBrowserHistory" value="true" /> 
    <preference name="exit-on-suspend" value="false" /> 
    <plugins> 
     <plugin name="App" value="org.apache.cordova.App"/> 
     <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/> 
     <plugin name="Device" value="org.apache.cordova.Device"/> 
     <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/> 
     <plugin name="Compass" value="org.apache.cordova.CompassListener"/> 
     <plugin name="Media" value="org.apache.cordova.AudioHandler"/> 
     <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/> 
     <plugin name="Contacts" value="org.apache.cordova.ContactManager"/> 
     <plugin name="File" value="org.apache.cordova.FileUtils"/> 
     <plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/> 
     <plugin name="Notification" value="org.apache.cordova.Notification"/> 
     <plugin name="Storage" value="org.apache.cordova.Storage"/> 
     <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/> 
     <plugin name="Capture" value="org.apache.cordova.Capture"/> 
     <plugin name="Battery" value="org.apache.cordova.BatteryListener"/> 
     <plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/> 
     <plugin name="Echo" value="org.apache.cordova.Echo"/> 
     <plugin name="Globalization" value="org.apache.cordova.Globalization"/> 
     <plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser"/> 
    </plugins> 
</cordova> 

risposta

1

Phonegap Build supportava solo la versione più recente di cordova 2.5.0. Ora è possibile utilizzare anche la versione 2.7.0. Dopo il passaggio alla 2.7.0 l'avviso() s è scomparso. Tutto funziona come previsto ora!

Problema risolto!

5

Sei sicuro di aver incluso il file PhoneGap JS, che è specifico per iOS ?? Di solito, questo errore si verifica quando si includono erroneamente i file cordova/phonegap (appartiene ad Android) per lo sviluppo iOS. Nella cartella phonegap 2.5.0 scaricata, si hanno diverse sottocartelle per piattaforme diverse. Devi assicurarti di utilizzare i giusti file Javascript forniti per piattaforme specifiche.

Possibile scenario:

Si potrebbe includere il file Cordova-2.5.0.js dalla cartella di Android per rendere iOS costruire. Potresti aver sbagliato a digitare il file JS nella tua cartella www. (Meno possibilità però).

Fix:

Utilizzare il Javascript (file Cordova-2.5.0.js) file dalla cartella di iOS all'interno della cartella PhoneGap-2.5.0 per iOS costruire.

+0

Questo non funzionerà per noi dal momento che non dobbiamo includere alcun file JS nel nostro progetto! La tua correzione è per un'app creata localmente. Stiamo costruendo online con [PhoneGap Build] (https://build.phonegap.com/). Secondo [Adobe] (https://build.phonegap.com/docs/preparing-your-app#configure_application) dobbiamo rimuovere il file JS phongegap/cordova da compilare tramite [PhoneGap Build] (https: // build .phonegap.com /). Comprenderà quello corretto per la piattaforma corretta. Quindi non c'è un file JS posizionato in modo errato nel nostro progetto. Il problema rimane. –

+1

questa era la risposta per me. Ho sviluppato per la prima volta un'app per Android. Quando si avvia su Windows Phone ho dimenticato di cambiare il file cordova.js. – Berty

+0

Abbiamo passato quasi tempo a cercare una soluzione, ma questa era una soluzione per me. Non mi aspettavo che un file Javascript possa essere diverso per due piattaforme –

Problemi correlati