有道云笔记贴过来的代码有点乱,请参考 原文 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. 睡眠唤醒机制简介
  2. onAttachToWindow() 调用
  3. Android中文API(138) —— RemoteViews
  4. Kivy A to Z -- Android(安卓)apk的生成过程
  5. android 多媒体
  6. Android调用系统自带的下载程序进行下载。
  7. 详解 Android(安卓)的 Activity 组件 -
  8. Android(安卓)面试之 Android(安卓)篇一
  9. ReactNative调用原生封装的代码和控件

随机推荐

  1. android典型代码系列(三十)------DES加密
  2. 初学Android的surfaceView
  3. android 自定义toggle Button按钮
  4. [android]上下文菜单
  5. android超炫button按钮动画效果
  6. 开源项目Universal Image Loader for And
  7. android studio 0.80多渠道打包
  8. adb server is out of date. killing...
  9. 【Android UI】ViewPager禁止滚动
  10. android实现图片模糊背景效果