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 stm32f103zet6 串口5无法收发数据
    • ¥15 宝塔面板的data内存要怎么清理呢
    • ¥15 关于C语言使用线程队列实现多线程并发
    • ¥15 这个运行,错误在哪里呀,大家看看吧,教导我
    • ¥15 advanceinstaller对话框设置
    • ¥100 正常上网,内部网页无法打开
    • ¥15 组件库引入并使用在若依框架未展示
    • ¥149 关于#使用python 的Flash Echarts+ajax+mysql动态数据实现饼图#的问题,请各位专家解答!
    • ¥15 RichTextBox中追加文本时报错
    • ¥15 关于c语言的学习问题