WebView 的 public void setWebChromeClient (WebChromeClient client)。此方法用处很多,我觉得里面的onJsAlert() onJsConfirm() onJsPrompt() 方法很好。
在WebChromeClient类里可以重写这三个方法,此时WebView中加载的html中如果执行alert("alert...."); confirm("confirm..."); prompt("prompt...", "defaultValue") 这三个方法,该类就会监听到执行对应的三个方法。我们可以让这三个方法的返回值为true ,即自定义此方法。在里面写入自己定义的Dialog,便可实现html与Activity交互。
注意 JsResult 此类需要在操作时,如果操作则 result.cofirm(). 取消则 result.cancel(); 还必须这每一个方法中写入 dialog.setOnkeyListener(); 方法来监听Back键,listener中 要写 result.cancel(); 否则系统没有消费这个事件,会出错。
js调用Java:
点击H5中的按钮,去执行js方法,js方法中又去调用Java方法(window.name.方法名)
Java调用js:
webView.loadUrl("javascript:show('" + json + "')"); 其中show()是js中的方法