android webview中使用Java调用JavaScript方法并获取返回值

android webview中使用Java调用JavaScript方法并获取返回值,第1张

概述在android平板上用webview打开一个网页,调用里面的javascript方法,同时相互传参。

在androID平板上用webvIEw打开一个网页,调用里面的JavaScript方法,同时相互传参。
网上例子很少啊,基本都不能获取返回值,贴一个自己最后调试完的代码如下:
Java:
复制代码 代码如下:
protected voID onCreate(Bundle savedInstanceState)
{
........
x = (WebVIEw)this.findVIEwByID(R.ID.webVIEw_vIEwtable);
x.setScrollbarStyle(VIEw.SCRolLbarS_INSIDE_OVERLAY);
x.getSettings().setBuiltInZoomControls(true);
x.getSettings().setJavaScriptEnabled(true);
x.addJavaScriptInterface(new JsToJava(),"stub");  //JsToJava是内部类,代码在后面。stub是接口名字。

//x.loadUrl("http://192.168.1.1/init.HTML");//这句是载入一个HTML页面。但是因为直接load一个网页会有延迟,所以最好用下面这句:
x.loadDataWithBaseURL("",data,"text/HTML","UTF-8","");  //这句里面data是init.HTML的内容。就是代码。直接用fileinputStream获取到就好。

x.loadUrl("JavaScript:setValuesJson('hello world')"); //hello world是给JavaScript传递的参数。setValuesJson是页面里JavaScript的方法。如果传递的参数中有双引号的话,用下面的写法:
String url = "JavaScript:setValuesJson(\"" + JsonString + "\")";
x.loadUrl(url);
.........
}//onCreate结束

再写一个内部类:
复制代码 代码如下:
private class JsToJava
{
        public voID JsMethod(String paramFromJs)
        {
            //Log.i("CDH",paramFromJs);
            System.out.println("Js返回结果" + paramFromJs);//处理返回的结果
        }
}

JavaScript代码:
复制代码 代码如下:
<script type="text/JavaScript">
        function setValuesJson(param)
        {
            alert(param);//param是java传过来的值,即"hello world".
            var result = "传回Java的string";
            window.stub.JsMethod(result);//用接口stub,通过调用内部类中的方法JsMethod给java传回result。
        }
</script>

  
搞定。

总结

以上是内存溢出为你收集整理的android webview中使用Java调用JavaScript方法并获取返回值全部内容,希望文章能够帮你解决android webview中使用Java调用JavaScript方法并获取返回值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1141816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存