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

标签 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 代码并工作了。但是当运行应用程序时不起作用。请指教

最佳答案

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/

相关文章:

java - 将 ResultSet 值传输到 HashMap 然后添加它们

java - 如何修复 javax.mail.AuthenticationFailedException 无效凭据

java - 在AspectJ中排除带注释的方法

javascript - 在 Cookie(或可能的 session 存储)中存储按钮切换状态的最佳方式?

javascript - jQuery 未定义,如果定义,不会被加载?

java - Netty Comet 异步请求超时

java - 树脂服务器错误

java - 我不明白为什么我的可扩展 ListView 的 onChildClick 方法出现致命异常

java - ViewPager 从子 fragment 中窃取水平触摸事件

jquery - 如何自定义wysihtml5编辑器的背景颜色、字体等?