Android WebView+JSON+JavaScript

本文介绍了如何在Android应用中使用WebView与JavaScript交互,并通过JSON数据传递信息。在Java代码中创建JSON数据,通过WebView的JavaScript接口将数据传递给网页,网页接收到数据后更新页面元素显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇Android WebView与JavaScript交互(一)的基础上,增加JSON数据传递,从Android客户端发送数据给html网页,在网页中对数据进行处理。

需要修改的地方:myWebView.java中。

增加变量:

String  jsonText = "{\"name\":\"helloworld\",\"password\":\"helloworld\"}";//待传递的json数据

 private Handler mHandler = new Handler();

然后增加:mWebView.setWebChromeClient(new MyWebChromeClient());

并重写DemoJavaScriptInterface类。

 private final class DemoJavaScriptInterface{
     
     DemoJavaScriptInterface(){
     
     }
    //这里的方法是提供给JavaScript调用的。
     public void clickOnAndroid()
     {
      mHandler.post(new Runnable(){

    @Override
    public void run() {
     // TODO Auto-generated method stub
     mWebView.loadUrl("javascript:wave("+jsonText+")");//在这里又调用了JavaScript的方法wave();
    
}
      });
     }
    }
    
    private final class MyWebChromeClient extends WebChromeClient{

  @Override
  public boolean onJsAlert(WebView view, String url, String message,
    JsResult result) {
   // TODO Auto-generated method stub
   result.confirm();
   return true;
  }
    }

最后我们需要修改html文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
    <script language="javascript"> 
        /* This function is invoked by the activity */ 
        function wave(jsonText) { 
            document.getElementById("username").innerHTML="用户姓名:"+jsonText.name; 
            alert("2"); 
            document.getElementById("password").innerHTML="密    码:"+jsonText.password;
            alert("2");
        } 
    </script> 
</head> 

    <body>这是一个html页面 <br /><br /><br /> 
    <div id="username" >用户姓名:</div><br />
    <div id="password" >密    码:</div><br /><br /> 
        <input type="submit" value="发起请求" onclick="window.demo.clickOnAndroid();"/> 
    </body> 
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值