Können Sie rufen eine javascript-Funktion von native-code (nicht in einen callback) mit PhoneGap und iOS?
Ich bin der Hoffnung, in der Lage sein zu verwenden PhoneGap für meine app. Ich habe zum erstellen einer benutzerdefinierten Protokoll/plugin, so dass ich nennen kann die Native-Methoden aus Javascript. Ich weiß, Sie einen Erfolg bezeichnen können Funktion in der Javascript-wenn die nativen code gibt.
Was ich brauche, um in der Lage sein zu tun ist, rufen eine javascript-Funktion aus dem nativen code. Grundsätzlich ist die app eine Verbindung zu einem OSX companion-app über das lokale Netzwerk und wenn die OSX-app senden von Daten an die iOS-app ist es verarbeitet, in eine Objective-C-Methode, ich muss in der Lage sein zu senden das Ergebnis in den PhoneGap/javascript und etwas mit es in der Webansicht.
Ist das möglich? Ich habe nur in der Lage gewesen, um Informationen zu finden, über den Aufruf von native javascript-nicht die andere Weise herum.
Dank,
Thomas
Verwenden Sie den code aus Antwort hier unten:
MyPhoneGapPlugin.m
- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port {
NSLog(@"Connected To %@:%i.", host, port);
NSString* jsString = [NSString stringWithFormat:@"alert(connected to: %@);", host];
[theWebView stringByEvaluatingJavaScriptFromString:jsString];
[self readWithTag:2];
}
Mir der Fehler 'Unbekannter Empfänger', theWebView' meinten Sie 'UIWebView'?
UPDATE: die Antwort Gefunden: mit dem phonegap-Helfer, ich kann schreiben, so etwas wie dieses...
[super writeJavascript:@"alert('connected');"];
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ganz einfach JavaScript aufrufen von systemeigenem code mit einem
UIWebView
:Verwenden, das Ergebnis einer Funktion irgendwo als arg an eine JS-Funktion:
theWebView
ist nicht sichtbar von innen, die Funktion. Sie müssen in der Lage sein, um zu sehen, eine@property UIWebView *theWebView
oderUIWebView *theWebView
ausMyPhoneGapPlugin.m
. Sie haben wahrscheinlich bereits versucht, um sicherzustellen, dass, aber.. abgesehen davon, dass ich weiß wirklich nicht, aus der Spitze von meinem Kopf, warum es würde nicht funktionieren.Fand die PhoneGap-Helfer um dies zu erreichen... javascript Schreiben, um die webView verwenden:
Sollten Sie versuchen, diese,
Wird diese Arbeit für Sie?
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DisplayWebContent/Tasks/JavaScriptFromObjC.html
Übernommen von dieser Seite:
Können Sie auch aufrufen, JavaScript Funktionen mit Argumenten. Davon ausgehen, dass Sie geschrieben haben, eine JavaScript-Funktion, die wie folgt aussieht:
Sein Zweck ist, um ein Bild hinzufügen zu einem web-Seite. Aufgerufen wird er mit drei Argumenten: das Bild, die URL des Bildes; Breite des Bildschirms Breite des Bildes; und die Höhe, ist der Bildschirm Höhe des Bildes. Sie können diese Methode aufrufen, eine von zwei Möglichkeiten von Objective-C. zuerst wird das array der Argumente, die Sie vor der Verwendung der WebScriptObject Brücke: