文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2022-06-06 10:17

关注

在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加载html5介绍Android中实现Webview顶部带进度条的方法Android WebView使用方法详解 附js交互调用方法android中webview控件和javascript交互实例在Android系统中使用WebViewClient处理跳转URL的方法Android中Webview打开网页的同时发送HTTP头信息方法Android开发之WebView组件的使用解析解析Android中webview和js之间的交互Android中 webView调用JS出错的解决办法Android Webview滑进出屏幕闪烁的解决方法


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯