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

 更新时间:2015年03月16日 10:57:19   投稿:junjie  
这篇文章主要介绍了android webview中使用Java调用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 Activity进出动画三种方法

    Android Activity进出动画三种方法

    这篇文章主要介绍了Android Activity进出动画三种方法的相关资料,需要的朋友可以参考下
    2017-05-05
  • Flutter路由框架Fluro使用教程详细讲解

    Flutter路由框架Fluro使用教程详细讲解

    在Flutter应用开发过程中,除了使用Flutter官方提供的路由外,还可以使用一些第三方路由框架来实现页面管理和导航,Fluro作为一款优秀的Flutter企业级路由框架,Fluro的使用比官方提供的路由框架要复杂一些,但是却非常适合中大型项目
    2022-10-10
  • Android 老生常谈LayoutInflater的新认知

    Android 老生常谈LayoutInflater的新认知

    今天不想去聊一些Android的新功能,新特性之类的东西,特别想聊一聊这个老生常谈的话题:LayoutInflater,感兴趣的朋友来看看吧
    2022-03-03
  • Android持久化技术之SharedPreferences存储实例详解

    Android持久化技术之SharedPreferences存储实例详解

    这篇文章主要介绍了Android持久化技术之SharedPreferences存储,结合实例形式较为详细的分析了SharedPreferences存储的原理、应用及具体实现方法,需要的朋友可以参考下
    2016-01-01
  • Android图片缓存之Bitmap详解(一)

    Android图片缓存之Bitmap详解(一)

    这篇文章主要为大家详细介绍了Android图片缓存之Bitmap,点学习一下Bitmap、BitmapFactory这两个类,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Android实现梯形TextView效果

    Android实现梯形TextView效果

    TextView(文本框),用于显示文本的一个控件,Android开发中经常使用,本文讲述如何实现一个梯形的TextView
    2021-05-05
  • Android获取高清app图标代码分享

    Android获取高清app图标代码分享

    这篇文章主要为大家分享了Android获取高清app图标代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android Activity的跳转与传值详解

    Android Activity的跳转与传值详解

    这篇文章主要介绍了Android Activity的跳转与传值详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • 超好用的Android高亮引导库的使用

    超好用的Android高亮引导库的使用

    这篇文章主要介绍了超好用的Android高亮引导库的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Android 消息机制以及handler的内存泄露

    Android 消息机制以及handler的内存泄露

    这篇文章主要介绍了Android 消息机制以及handler的内存泄露的相关资料,需要的朋友可以参考下
    2016-09-09

最新评论