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 蓝牙通信方式总结

    详解Android 蓝牙通信方式总结

    这篇文章主要介绍了详解Android 蓝牙通信方式总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2013-11-11
  • Android编程实现ActionBar的home图标动画切换效果

    Android编程实现ActionBar的home图标动画切换效果

    这篇文章主要介绍了Android编程实现ActionBar的home图标动画切换效果,涉及Android布局、样式、Activity及菜单相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • Android编程设计模式之解释器模式详解

    Android编程设计模式之解释器模式详解

    这篇文章主要介绍了Android编程设计模式之解释器模式,详细分析了Android解释器模式的概念、原理、使用场景、使用方法及相关操作注意事项,需要的朋友可以参考下
    2017-12-12
  • Android入门之ScrollView的使用教程

    Android入门之ScrollView的使用教程

    我们经常可以看到在手机里正在垂直加载一堆的数据,然后过一会加载得内容过多,到了手机的底部了,垂直方向就会出现一个“滚动条”。本文就来通过一些示例和大家介绍下ScrollView(滚动条)的使用,感兴趣的可以了解一下
    2022-11-11
  • Android四大组件:Activity/Service/Broadcast/ContentProvider作用示例

    Android四大组件:Activity/Service/Broadcast/ContentProvider作用示例

    Android是一种基于Linux,自由及开放源代码的操作系统,Android分为四个层,从高层到底层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层,Android有四大基本组件:Activity、Service服务、BroadcastReceiver广播接收器、Content Provider内容提供者
    2023-11-11
  • Android中自定义一个View的方法详解

    Android中自定义一个View的方法详解

    这篇文章主要介绍了Android中自定义一个View的方法,结合实例形式较为详细的分析了Android中自定义View的具体步骤与相关注意事项,需要的朋友可以参考下
    2016-07-07
  • Android开发VR实战之播放360度全景视频

    Android开发VR实战之播放360度全景视频

    这篇文章主要为大家详细介绍了Android开发VR实战之播放360度全景视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Android编程开发之多点触摸(Multitouch)实现方法

    Android编程开发之多点触摸(Multitouch)实现方法

    这篇文章主要介绍了Android编程开发之多点触摸(Multitouch)实现方法,结合实例形式详细分析了Android多点触摸的相关实现步骤与操作技巧,需要的朋友可以参考下
    2016-08-08
  • android9.0 默认apk权限添加方法

    android9.0 默认apk权限添加方法

    本文给大家分享android9.0 默认apk权限添加方法,默认赋予全部权限,根据包名赋予权限,通过default-permissions-google.xml的方式实现,文中通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • 使用Android studio创建的AIDL编译时找不到自定义类的解决办法

    使用Android studio创建的AIDL编译时找不到自定义类的解决办法

    这篇文章主要介绍了使用Android studio创建的AIDL编译时找不到自定义类的解决办法的相关资料,需要的朋友可以参考下
    2016-02-02

最新评论