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.
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()
.
Tags und Links javascript iphone