有道云笔记贴过来的代码有点乱,请参考 原文 webview调用html js完全攻略(所有的疑问都能解答) 设置webSettings //允许h5使用javascript webView.getSettings().setJavaScriptEnabled(true); //允许android调用javascript webView.getSettings().setDomStorageEnabled(true);   设置调用javascript webView.setWebViewClient(new WebViewClient(){ @Override public void onPageFinished(WebView view, String url) { webView.loadUrl("javascript:alert('hello')"); webView.loadUrl("javascript:androidCallBack()"); } } 一定要放在onPageFinished中,保证webview已经加载完毕,再调用js。 上面通过android调用js的弹窗功能。这也是我们常用的js测试功能。   现在可以说配置完成了,当我们运行上面代码,发现并没有alert数据(或者console数据),这也是困扰我比较长时间的地方。 最后发现,android要获取javascript的弹窗功能(或console)功能,有单独的方法调用。   捕获弹窗(或console) webView.setWebChromeClient(new WebChromeClient(){ @Override public boolean onConsoleMessage(ConsoleMessage cm) { Log.d("test", cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId() ); return true; }   @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { Log.d("alert",message); return true; } }); 加上配置后继续运行。这时发现弹窗的数据的确打印了,不过H5的界面却没显示出来,经过查阅,了解到,webview捕获alert函数后会卡死,需要释放。 修改代码如下: @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { Log.d("alert",message); //劫持alert以后释放,不然会卡死 result.confirm(); return true; } 再次运行,显示成功。   补充说明下,当时使用fragement加载,需要在切换fragement的时候webview调用js。而fragementmanager的show和hide方法,并不会调用fragement的生命周期函数,经过查阅文档,发现会调用,onHiddenChanged方法,于是问题得到解决。   public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); if (hidden) {// 不在最前端界面显示   } else {// 重新显示到最前端中 webView.evaluateJavascript("javascript:androidCallBack()",null); }

更多相关文章

  1. 1、android源代码下载与跟踪
  2. android经典开源代码集合
  3. ReactNative调用原生封装的代码和控件
  4. Android开发人员不得不收集的代码(持续更新中)
  5. Android清除本地数据缓存代码
  6. 使用Android拨打电话功能
  7. Android第一个功能:手机拨号器
  8. Android 代码执行Linux Shell小记

随机推荐

  1. Android将camera获取到的YuvData在jni中
  2. android系统关机源码(9.0)流程分析
  3. Android WebView全面讲解
  4. Android系统JNI解决上层直接调用Linux内
  5. Android5.0之后 VectorDrawable实现超炫
  6. Android 自定义上面圆角下面直角的ImageV
  7. Android 多进程通信
  8. Android(安卓)- Earthquake项目(地震显示
  9. Android播放器中我喜欢的一个地方-----高
  10. Android 渗透测试学习手册(三)Android 应用