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

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. android EditText设置不可写
  4. android 使用html5作布局文件: webview跟javascript交互
  5. 《Android开发从零开始》——25.数据存储(4)
  6. android studio调试c/c++代码
  7. Android系统配置数据库注释(settings.db)
  8. Android中不同应用间实现SharedPreferences数据共享
  9. IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13

随机推荐

  1. mysqli类使用预处理语句不返回任何数据
  2. (T_ENCAPSED_AND_WHITESPACE),期望标识符(
  3. 使用PHP发布整个mySQL命令
  4. php使用DOMDocument更改div但不更新页面
  5. 在数组中计数,其中值为0
  6. 如何添加动态参数
  7. 数据库布局更新是否仍在Magento中使用?
  8. PHP调用存储过程失败(没有执行到)--mysql_e
  9. 在php中检测浏览器,版本和平台的可靠方法
  10. 如何知道php zip扩展程序是否已安装?如何