gpt4 book ai didi

javascript - 使用WebView在现场调用JS

转载 作者:行者123 更新时间:2023-11-29 19:30:45 26 4
gpt4 key购买 nike

有一个站点,我想在其中运行 JS 脚本,例如:

document.getElementById("statuses").rows[2].cells[1].firstChild.nodeValue

并得到一些结果。我添加了 WebView 并尝试实现它:

MainActivity.OnCreate

WebView wv = FindViewById<WebView>(Resource.Id.webView);
wv.Settings.JavaScriptEnabled = true;
wv.SetWebViewClient(new Client());
wv.LoadUrl("http://inout.test.com/");

然后是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());
}
}

JsResult

public class JsResult : Java.Lang.Object, IValueCallback {

public string Result;
public void OnReceiveValue(Java.Lang.Object value) {
Result = ((Java.Lang.String)value).ToString();
}
}

但是 Result 总是空的!我做错了什么?是否有可能从 JS 中获取值(value)?请帮忙。

最佳答案

如果你执行

function() { alert('hello world'); return 42; } ()

在 Chrome 开发者控制台中,您最终得到了

enter image description here

你只需要使用正确的括号:

(function() { alert('hello world'); return 42; }) ()

然后你会看到:

enter image description here

关于javascript - 使用WebView在现场调用JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39997898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com