Was ist der richtige Weg (bis zu diesem Datum), um JQuery Mobile und Phonegap zusammen zu verwenden?
Beide Frameworks müssen geladen werden, bevor sie verwendet werden können. Wie kann ich sicher sein, dass beide geladen sind, bevor ich sie verwenden kann?
ondeviceReady
bevor das Ereignis von Ihrem JQM-Code ausgelöst wird ...Antworten:
Sie können die verzögerte Funktion von JQuery verwenden.
quelle
cordova.js
? Sollte es vor oder nach JQM geladen werden?Hier ist, wie es für mich funktioniert hat, basierend auf dem obigen Beispiel
quelle
Um phonegap zusammen mit jquery mobile zu verwenden, müssen Sie es so verwenden
quelle
Wie viele Leute vorgeschlagen haben, ist die Verwendung einer verzögerten Option in Ordnung, solange es Ihnen egal ist, in welcher Reihenfolge
deviceready
undmobileinit
in welcher Reihenfolge . Aber in meinem Fall brauchte ich einigepageshow
Ereignisse, als die Anwendung zum ersten Mal geladen wurde,mobileinit
und im weiteren Sinne waren diesepageshow
/pagebeforeshow
/ etc-Ereignisse Alle feuerten, bevor siedeviceready
fertig waren, so dass ich mich nicht richtig an sie binden konnte, indem ich sie aufschob. Diese Rennbedingung war keine gute Sache.Was ich tun musste, war sicherzustellen, dass 'mobileinit' erst stattfand, nachdem '
deviceready
' bereits gefeuert wurde. Da esmobileinit
beim Laden von JQM sofort ausgelöst wird, habe ich mich für das Laden entschieden, nachdemjQuery.getScript
esdeviceready
bereits fertig war.Der Grund, warum ich den Körper verstecke, ist, dass ein Nebeneffekt dieser Methode eine halbe Sekunde der Sichtbarkeit des ursprünglichen HTML-Dokuments ist, bevor jquery.mobile geladen wird. In diesem Fall wird das Ausblenden einer zusätzlichen halben Sekunde des leeren Speicherplatzes dem Anzeigen des nicht gestalteten Dokuments vorgezogen.
quelle
index.html
<script>
Tag enthalten waren.Ich glaube, dass es nicht notwendig ist, die verzögerte Funktion zu verwenden. (Vielleicht ist dies bei neueren Versionen von phonegap nicht erforderlich?) Ich habe dies im Kopf meiner index.html-Datei und alles funktioniert einwandfrei. Ich denke, dass die Reihenfolge der Aufnahme von jquery, phonegap und jquery mobile wichtig ist.
quelle
Das ist Arbeit für mich. Basis auf Dhaval, dieses Beispiel, wenn ich mit SQLite lerne
quelle
Um auf der Antwort von @ Jeffrey aufzubauen, habe ich einen viel saubereren Weg gefunden, der das HTML-Markup verbirgt, bis JQM die Verarbeitung der Seite abgeschlossen und das erste Seitenelement gerendert hat, da ich bemerkt habe, dass 1/2 Sekunde bloßes Markup flackert, bevor JQM rendert.
Sie müssen nur das gesamte Markup mit CSS ausblenden ... PageShow () von JQM schaltet die Sichtbarkeit für Sie um.
quelle
Das Folgende funktionierte für mich auf PG 2.3 und JQM 1.2, inkl. Facebook Connect Plugin:
quelle
Das Laden von PhoneGap unterscheidet sich geringfügig vom Laden von jQuery. jQuery funktioniert eher als Dienstprogrammbibliothek, daher schließen Sie diese ein und es steht sofort zur Verfügung. Auf der anderen Seite benötigt PhoneGap die Unterstützung von nativem Code für eine ordnungsgemäße Initialisierung, sodass es nicht bald nach der Aufnahme in die Seite einsatzbereit ist.
Phonegap schlägt vor, sich zu registrieren und auf ein
deviceready
Ereignis zu warten , das einen nativen spezifischen Code ausführt.Weitere Informationen finden Sie im Dokument
quelle
#form
die erste Seite sind, erhalten Sie keinenpageinit
Rückruf, da es zu spät ist