Ich habe begonnen, HTML-Anwendungen für mehrere Plattformen zu entwickeln. Ich habe kürzlich von Cordova 2.0 (PhoneGap) gehört und seither bin ich gespannt, wie die Brücke funktioniert. Nach viel Code zu Fuß, sah ich, dass die Exec.js der Code in dem Aufruf von JS -> NativeWie funktioniert phoneGap (Cordova) intern, iOS spezifische
execXhr = execXhr || new XMLHttpRequest();
// Changeing this to a GET will make the XHR reach the URIProtocol on 4.2.
// For some reason it still doesn't work though...
execXhr.open('HEAD', "file:///!gap_exec", true);
execXhr.setRequestHeader('vc', cordova.iOSVCAddr);
if (shouldBundleCommandJson()) {
execXhr.setRequestHeader('cmds', nativecomm());
}
execXhr.send(null);
} else {
execIframe = execIframe || createExecIframe();
execIframe.src = "gap://ready";
Aber wollen verstehen, geschieht, wie das funktioniert, was das Konzept hier ist, was Datei tut: ///! gap_exec oder gap: // ready do? und wie ruft der Anruf zu den unteren Schichten (native Codeschichten)
dank ein Bündel im Voraus ab.
Ich habe diese lange Zeit zurück herausgefunden. Aber deine Antwort ist richtig. Danke – 2ndlife
könnten Sie Ihre Antwort aktualisieren, wenn Sie Cordova noch folgen? Es sieht so aus, als ob exec ein iframe mit src = "gap: // ready" eingibt und das ist die einzige js ... dann fängt CDVViewController.m alle Anfragen mit 'lapseStartLoadWithRequest' ab, dann verwendet CDVCommandQueue.m die stringByEvaluatingJavaScriptFromString um die js Befehlswarteschlange zu holen . – premiumFrye
@Christian Kuetbach: Du hast gesagt "Es könnte mehr als einen nativen Anruf gleichzeitig geben". Meine Situation ist genau dieselbe. Ich muss eine native Plugin-Methode mehr als einmal gleichzeitig aufrufen. Ich möchte auch eine Antwort von nativem Plugin (als Plugin-Ergebnis mit Rückruf-ID) für jeden Plugin-Aufruf von JavaScript übergeben. Ich bin mir nicht sicher, wie sich Cordova in diesem Zusammenhang verhält. Ich habe zu diesem Zweck eine gesonderte Frage gestellt. Wenn möglich, könnten Sie bitte in diese http://stackoverflow.com/q/32139534/2035845 schauen. –