例如
获取网页内容
设置WebView Enable JavaScript
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");
Java供Js调用的类
final class InJavaScriptLocalObj {
@JavascriptInterface
public void showSource(String html) {
System.out.println("====>html="+html);
}
}
WebViewClient中的onPageFinished加入代码
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.loadUrl("javascript:window.local_obj.showSource(document.getElementsByTagName('html')[0].innerHTML);");
或者
view.loadUrl("javascript:window.local_obj.showSource('<head>'+"
+ "document.getElementsByTagName('html')[0].innerHTML+'</head>');");
} }
扩展阅读
JavaScript中获取 head 的方法
var head = document.head || document.getElementsByTagName(‘head’)[0];
所以上文获取showSource的参数可以为
view.loadUrl("javascript:window.local_obj.showSource(document.head.innerHTML || document.getE