我想在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代码并且工作了。但是,当运行应用程序不工作。请建议
答案 0 :(得分:1)
loadUrl()
是异步的;在您尝试在下一行调用fill()
之前,它将返回但内容将不会完成加载(包括您的fill()
javascript方法)。尝试在页面加载完成时添加一个监听器,并从那里调用javascript方法:
wv.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:fill()");
}
});