Android WebView führt JavaScript asynchron aus und übergibt das Ergebnis der Ausführung später in einem ValueCallback.
Ich bin nicht vertraut mit Xamarin genau, aber wenn Sie etwas von Ihrem Android C# -Code teilen können, kann in der Lage sein, besser zu helfen.
aus einer Java-Perspektive, wo meine Erfahrung liegt:
Im Wesentlichen Sie ein ValueCallback Objekt instanziiert müssen, die die onReceiveValue
Funktion implementiert. Wenn das von Ihnen ausgewertete JavaScript fertig ausgeführt wird, wird die von Ihnen angegebene Funktion ausgeführt, wobei das Ergebnis dieser Auswertung als Parameter übergeben wird, der eine Zeichenfolge von JSON ist. Sie sollten dann in der Lage sein, das Ergebnis von diesem JSON abzurufen.
Hoffe, das hilft!
Update: cobbling zusammen einige C#, die helfen könnten. Vorbehalt: Ich habe vorher noch nie eine Zeile C# geschrieben. Aber hoffentlich, wenn es nicht ganz richtig werden Sie auf dem richtigen Weg :-)
class JavaScriptResult : public IValueCallback {
public void OnReceiveValue(Java.Lang.Object result) {
Java.Lang.String json = (Java.Lang.String) result;
// |json| is a string of JSON containing the result of your evaluation
}
}
Dann können Sie vermutlich etwas sagen nach dem Vorbild der
web_view.EvaluateJavaScript("function() { alert('hello world'); return 42; }()",
new JavaScriptResult());
möglich Duplikat von [Wie Sie Javascript in Xamarin.Android/Monodroid bewerten und das Ergebnis abrufen?] (Http://stackoverflow.com/questions/22100373/how-to-evaluate-javascript-in-xamarin-android-monodroid-and-retrieve-result) – poupou
@ poupou Ich habe beide Fragen gepostet. Ich bin neu in diesem Bereich. Ursprünglich habe ich gefragt, wie man dies mit loadurl ("javascript: fn") für Android pre-Kitkat und auch mit der Methode evaluatejavascript in Android KitKat erreichen kann. Ich habe es anschließend in zwei Fragen aufgeteilt, so dass die Last für zwei Lösungen nicht auf einer Person lastete. – JakeRanderson86
Bitte löschen Sie eine Ihrer Fragen. –