Rückgabewert Javascript UIWebView

8

Ich versuche, den Rückgabewert einer JavaScript-Funktion (zum Beispiel: return "hello" ) mit iPhone SDK zu erhalten.

Unter OS X gibt die WebView-Methode -stringByEvaluatingJavaScriptFromString einen NSString zurück, der den Rückgabewert der Funktion js enthält, aber auf dem iPhone wird kein Wert zurückgegeben.

Wie kann ich das lösen?

Ich habe eine private UIWebViewDelegate-Methode gefunden

%Vor%

wird aufgerufen, wenn die Funktion alert () im js-Skript verwendet wird. Also kann ich den Wert "return" einfach durch Aufruf von alert(myReturValue) erhalten.

Das löst mein Problem nicht, weil ich etwas im öffentlichen SDK benötige.

    
Marco 31.01.2009, 15:10
quelle

2 Antworten

28

Die Rückgabezeichenfolge ist das Ergebnis der letzten JavaScript-Anweisung. Stellen Sie nicht return davor!

Der minimale Code, der für mich funktioniert hat:

%Vor%

Also musste ich UIWebView* zu einer Ansicht hinzufügen (sonst würde es danach abstürzen), aber nichts in die Webansicht laden müssen.

Beachten Sie, dass die letzte Anweisung nur " f(); " ist, daher enthält die zurückgegebene Zeichenfolge das Ergebnis der Auswertung von f() .

    
squelart 03.02.2009 03:24
quelle
6

Ich hatte das gleiche Problem, als ich versuchte, einige Funktionen von Google Maps API aufzurufen.

Es gab ein Problem beim Zurückgeben von Objekten, also löste ich es mit der Funktion toString ().

%Vor%     
bendewer 24.06.2010 10:11
quelle

Tags und Links