awen2007v 2012-08-14 16:18
浏览 455
已采纳

webview调用javascript获得返回值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>test</title>
<script type="text/javascript">
function test_function_add(a,b)
{
    return a+b;
}
function android_ret(tag,val)
{
    alert(tag+":"+val);
}
function android_excute(tag,js)
{
    var retval = eval(js);
    android_ret(tag,retval);
}
function getCellString(row, column) 
{
    return Report.getCellString(row,column);
}
function getCookie(name)//取cookies函数           
{   
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));   
     if(arr != null){   
            test.getCookie(name,unescape(arr[2]));  
     }else{
            test.getCookie(name,"null");   
     } 
}
</script>
</head>

<body>
</body>
</html>

 安卓中,想要调用html里面的方法,并且获得返回值。应该怎么去获得?

webView.loadUrl("javascript:android_excute('test','test_function_add(1,6)'");
  webView.addJavascriptInterface(new JavaScriptInterface(), "Report");
  webView.loadUrl("javascript:getCellString('Report',getCellString(5,7)");

这样都获得不了。麻烦问下具体应该怎样去获得

  • 写回答

1条回答 默认 最新

  • 远方夕阳 2012-08-16 11:40
    关注

    [code="java"]执行js函数的代码
    webView.loadUrl("javascript:resetFontSize(20px)"); 这句
    不能直接在加载页面的下面。

    因为loadUrl是个异步的加载方法,一开始html页面并没有加载完,
    document也没生成完,所以resetFontSize方法无法解析document树,
    把代码改成这样
    webView.loadUrl("file:///android_asset/110711001.html");

        WebViewClient wvc = new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webView.loadUrl("javascript:resetFontSize('20px')");
                super.onPageFinished(view, url);
            }
        };
        webView.setWebViewClient(wvc);
    
    }
    

    我已经测试通过。[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名