Android中WebView和JavaScript之间传递json格式数据

Android中WebView和JavaScript进行简单通信的基础上,实现了传递json格式数据功能,效果类似这样:

点击发起请求,得到Activity返回数据

只对MainActivity和demo.html代码进行了修改。首先声明了json格式字符串:

String  jsonText = "{\"name\":\"vsp\",\"password\":\"vsp\"}";

DemoJavaScriptInterface类中,增加了方法clickOnAndroid,用来调用JavaScript中的方法,向Html页面传递数据:

final class DemoJavaScriptInterface {

     DemoJavaScriptInterface() {
     }

     /**
      * This is not called on the UI thread. Post a runnable to invoke
      * loadUrl on the UI thread.
      */
     public void clickOnAndroid() {
         mHandler.post(new Runnable() {
             public void run() {
                 mWebView.loadUrl("javascript:wave("+jsonText+")");
             }
         });

     }
}

WebView中设置了WebChromeClient,这样就能在控制台打印JavaScript中alert等信息,用来调试JavaScript

mWebView.setWebChromeClient(new MyWebChromeClient()); 

MyWebChromeClient代码如下:

final class MyWebChromeClient extends WebChromeClient { 
      @Override 
      public boolean onJsAlert(WebView view, String url, String message, JsResult result) { 
          Log.d(LOG_TAG, message); 
          result.confirm(); 
          return true; 
      } 
  } 

demo.html代码也很简单,就不做解释了。

http://www.w3.org/TR/html4/loose.dtd">



Insert title here
   

    这是一个html页面



   

用户姓名:



       
   

源码链接见:http://bigcateasymorse.googlecode.com/svn/trunk/webviewdemo1.1/

 

来自:http://bigcat.easymorse.com/?p=746

你可能感兴趣的:(android)