Es gibt einen Ort, wo ich will, wie JS-Skript auszuführen:Anruf JS vor Ort mit WebView
document.getElementById("statuses").rows[2].cells[1].firstChild.nodeValue
und einiges Ergebnis. Ich habe WebView
gegeben und versucht, das umzusetzen:
MainActivity.OnCreate
WebView wv = FindViewById<WebView>(Resource.Id.webView);
wv.Settings.JavaScriptEnabled = true;
wv.SetWebViewClient(new Client());
wv.LoadUrl("http://inout.test.com/");
Dann Cleint
public class Client : WebViewClient {
public override void OnPageFinished(WebView view, string url) {
base.OnPageFinished(view, url);
var script = $"javascript: document.getElementById(\"statuses\").rows[2].cells[1].firstChild.nodeValue";
//view.LoadUrl($"javascript: {script}");
view.EvaluateJavascript(script , new JsResult());
}
}
Und JsResult
public class JsResult : Java.Lang.Object, IValueCallback {
public string Result;
public void OnReceiveValue(Java.Lang.Object value) {
Result = ((Java.Lang.String)value).ToString();
}
}
Aber Result
ist immer leer! Was mache ich falsch? Ist es möglich, Wert von JS zu erhalten? Bitte helfen Sie.
'Rück 42;' zurückkehrt eine ganze Zahl/Nummer. Haben Sie sich die tatsächliche Art von "Wert" angesehen? –
Ich denke, es ist egal, weil ich versucht habe, 'Hallo' anstelle von 42 zurückzugeben. Der tatsächliche Typ von 'Wert' ist' Java.Lang.Object ' –
Entschuldigung mit" dem tatsächlichen Typ "meinte ich den Typ des Objekt selbst nicht von der Variable. Der Typ des Objekts ist 'Java.Lang.String'. –