我想在 webview 上执行 jquery。我用 html 文件填充 webview。并在 oncreate 方法中写入以下代码:
WebView wv=new WebView(this);
setContentView(wv);
WebSettings webViewSettings = wv.getSettings();
webViewSettings.setJavaScriptEnabled(true);
webViewSettings.setDomStorageEnabled(true);
wv.loadUrl("file:///android_asset/index.html");
wv.loadUrl("javascript:fill()");
并向 oncreate 方法添加此属性:@SuppressLint("SetJavaScriptEnabled")
我的 html 文件:
<html>
<head>
<title></title>
<script src="jquery.min.js"></script>
<script >
function fill(){
$('#input1').val('123');
}
</script>
</head>
<body>
<input type="text" id="input1"/>
</body>
</html>
我在 chrome 中测试了我的 jquery 代码并工作了。但是当运行应用程序时不起作用。请指教
最佳答案
loadUrl()
是异步的;它会返回,但在您尝试调用下一行的 fill()
之前,内容尚未完成加载(包括您的 fill()
javascript 方法)。尝试添加一个监听器来监听页面何时完成加载并从那里调用 javascript 方法:
wv.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:fill()");
}
});
关于java - 如何通过java执行webview的jquery代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35183423/