如何通过java为webview执行jquery代码?

时间:2016-02-03 17:10:51

标签: java android jquery webview

我想在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代码并且工作了。但是,当运行应用程序不工作。请建议

1 个答案:

答案 0 :(得分:1)

loadUrl()是异步的;在您尝试在下一行调用fill()之前,它将返回但内容将不会完成加载(包括您的fill() javascript方法)。尝试在页面加载完成时添加一个监听器,并从那里调用javascript方法:

wv.setWebViewClient(new WebViewClient() {
    public void onPageFinished(WebView view, String url) {
        view.loadUrl("javascript:fill()");
    }
});