android开发调用javascript的调试过程中,有时候需要使用onJsAlert来输出javascript方法的信息,以帮助我们进行问题定位。


覆写WebChromeClient的onJsAlert方法即可:


class MyWebChromeClient extends WebChromeClient {       @Override       public boolean onJsAlert(WebView view, String url, String message, JsResult result) {           Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();           return true;       }   }


private WebView mWebView;


mWebView = (WebView) findViewById(R.id.content_webview);         mWebView.getSettings().setJavaScriptEnabled(true);         mWebView.setHorizontalScrollBarEnabled(false);         mWebView.setVerticalScrollBarEnabled(false);         mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);                                                                                                               mJsBridge = new JavascriptBridge(this, mWebView);                                                                                                               mWebView.addJavascriptInterface(mJsBridge, "JSBrige");         mWebView.setWebChromeClient(new MyWebChromeClient());




html文件里弹出alert信息(我把usite.css\usite.js\usite.html都存放在android项目的asset目录下):



                    {TITLE}{CONTENT}




很可惜的是,运行程序后只弹出了一次


而且后续的js方法无法继续进行。幸运的是,通过搜索,我们找到了问题的所在,需要在每次调完后设置参数JsResult调用cancel()或者confirm()方法,这样子:

class MyWebChromeClient extends WebChromeClient {         @Override         public boolean onJsAlert(WebView view, String url, String message, JsResult result) {             Toast.makeText(DetailActivity.this, message, Toast.LENGTH_SHORT).show();             result.cancel();             return true;         }     }


问题就解决了。可以方便进行android和javascript方法的调试了。需要注意的一点是,html文件head引用.js文件的时候,格式应该是这样:


[html] view plain copy


而不是


[html] view plain copy


更多相关文章

  1. Kitkat 的磁盘加密功能分析
  2. Android(安卓)listview 利用反射的自动绑定Adapter
  3. Android中jNI的使用
  4. Android的res目录
  5. Android(安卓)ListView控件基本用法
  6. 浅谈Java中Collections.sort对List排序的两种方法
  7. NPM 和webpack 的基础使用
  8. Python list sort方法的具体使用
  9. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程

随机推荐

  1. item嵌套button使listview onitemClick事
  2. android中几种定位方式详解
  3. android源码解析-异步消息
  4. android之通过MediaRecorder进行手机录音
  5. eclipse中在线升级adt遇到问题
  6. Android(安卓)广播获取短信内容
  7. Android(安卓)Studio 上如何使用LogCat
  8. 修改Android(安卓)framework定制重启功能
  9. Android链式方法显示Dialog
  10. Android(安卓)UI(7)Building Apps with M