利用WebView调用js的alert方法一直无效的解决办法
webView.loadUrl("javascript:alert('hello')")

利用 webview调用js需要注意一下四点

1) WebSettings设置支持javascript

mWebView.getSettings().setJavaScriptEnabled(true);

2) 在运行脚本前,要有document对象,至少得load一个空白页

webView.loadData(“”,"text/html","UTF-8");

3)如果还是不行的话,就应该是因为第一个还没执行完呢

webView.loadData(“”,"text/html","UTF-8");

webView.loadUrl("javascript:alert('hello')");

解决这个问题有三个办法  1)从界面按钮调用 2)延时调用 3)在onPageFinished中调用

mWebView.setWebViewClient(new MyWebViewClient());

private class MyWebViewClient extends WebViewClient {

@Override

public void onPageFinished(WebView webView, String url) {

webView.loadUrl("javascript:"+script);

}

}

4)console/alert

以上三点完成后,js就已经可以执行了,可是为什么console.log和alert没有效果呢?

因为这2个要额外实现

mWebView.setWebChromeClient(new MyWebChromeClient());

private class MyWebChromeClient extends 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) {

Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();

return true;

}

}


更多相关文章

  1. android实现字体闪烁动画的方法
  2. Android(安卓)Wifi模块分析(三)
  3. Android中dispatchDraw分析
  4. Android四大基本组件介绍与生命周期
  5. 在Fragment中设置控件点击方法,执行失败。
  6. Android(安卓)Service AIDL
  7. Android调用天气预报的WebService简单例子
  8. android打电话发短信
  9. android 拨打紧急号码,通话时开启免提功能实现

随机推荐

  1. Android中接入极光推送
  2. android 边框圆角
  3. Android加载FlutterView黑屏问题
  4. android MVVM DataBinding
  5. Android实现今日头条订阅频道效果
  6. android camera(一):camera模组CMM介绍
  7. 【Android(安卓)UI设计与开发】第14期:顶
  8. android地图,判断坐标是否在你要求的范围
  9. Android之Input子系统事件分发流程
  10. android的振动器Vibrator