在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方法并获取返回值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)