2013-05-15 19 views
5

Wir entwickeln eine App mit Phonegap 2.5.0 (da es keine neuere Version in Phonegap Build gibt) und Probleme auftreten.Phonegap App Build mit Phonegap Erstellen Sie Warnungen mit Fehlern auf iOS

Die App ist eine einfache Test-App, die wir verwenden, um jQuery Mobile und Sencha Touch zu vergleichen. Daher haben wir eine index.html-Datei erstellt, die Links zu einer jquery.html und einer sencha.html enthält, die dieselbe App mit einer anderen Benutzeroberfläche implementieren, aber dieselben Phonegap-Trigger aufrufen.

Wir haben zwei Build-Konfigurationen:

  • App lokal über Eclipse basiert ist
  • App integriert ist online über Phonegap Build

Wir verwenden die gleichen Web-Inhalte wie auf unserem lokal bauen Android App . Wir entfernen nur das Element <script>, das die cordova.js für 2.5.0 lädt, und packt den Inhalt zusammen mit der gleichen config.xml, die wir in der lokal erstellten Android-App verwenden. Die lokal gebaute Android App funktioniert gut. Probleme treten nur auf, wenn die App online für iOS über Phonegap Build erstellt wird. Die online erstellte Android-App funktioniert erwartungsgemäß. Nur iOS macht Probleme.

Was passiert auf iOS:

  • index.html geladen
  • wir in der Lage sind auf den Link zu klicken, der die jquery.html oder sencha.html schaltet.
  • nach der App-Benachrichtigungen mit einigen Dialogen Umschalten durch folgende Meldungen Dreh:
    1. gap:["Device","getDeviceInfo","Device455526479"]
    2. gap:["NetworkStatus","getConnectionInfo","NetworkStatus8103758"]
    3. gap:["App","show","App8103759"]
  • dann können wir die App zugreifen und sind sogar in der Lage, die aktuelle GPS zu erhalten Position.

Irgendwelche Ideen? Danke vielmals!

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

Antwort

1

Phonegap Build wurde nur als neueste Version von cordova 2.5.0 unterstützt. Jetzt ist es auch möglich, die Version 2.7.0 zu verwenden. Nach dem Wechsel zu 2.7.0 sind die alert() s verschwunden. Alles funktioniert wie erwartet!

Problem gelöst!

5

Sind Sie sicher, dass Sie die Phonegap JS-Datei enthalten sind, die auf iOS spezifisch ist ?? Normalerweise tritt dieser Fehler auf, wenn Sie die cordova/phonegap-Dateien (gehört zu Android) fälschlicherweise für die iOS-Entwicklung verwenden. Im heruntergeladenen phonegap 2.5.0-Ordner haben Sie verschiedene Unterordner für verschiedene Plattformen. Sie müssen sicherstellen, dass Sie die richtigen Javascript-Dateien verwenden, die für bestimmte Plattformen angegeben sind.

Mögliches Szenario:

Sie könnten die cordova-2.5.0.js Datei aus dem Android-Ordner enthalten, um iOS bauen. Möglicherweise haben Sie gerade die JS-Datei in Ihrem www-Ordner falsch geschrieben. (Weniger Möglichkeit allerdings).

Fix:

Verwenden Sie die Javascript (Cordova-2.5.0.js-Datei) Datei von iOS-Ordner innerhalb des Phonegap-2.5.0-Ordner für iOS bauen.

+0

Dies funktioniert nicht für uns, da wir keine JS-Datei in unser Projekt aufnehmen dürfen! Ihr Fix ist für eine lokal erstellte App. Wir bauen online mit [Phonegap Build] (https://build.phonegap.com/). Gemäß [Adobe] (https://build.phonegap.com/docs/preparing-your-app#configure_application) müssen wir die phongegap/cordova JS-Datei entfernen, um sie über [Phonegap Build] (https: // build) zu erstellen .phonegap.com /). Es wird die richtige für die richtige Plattform enthalten. Es gibt also keine falsch positionierte JS-Datei in unserem Projekt. Das Problem bleibt bestehen. –

+1

das war die Antwort für mich. Ich habe zuerst eine App für Android entwickelt. Beim Start auf Windows Phone habe ich vergessen, die Datei cordova.js zu ändern. – Berty

+0

Fast für die Suche nach einer Lösung, aber das war die Lösung für mich. Ich habe nicht erwartet, dass eine Javascript-Datei für zwei Plattformen unterschiedlich sein kann –