和之前取出图片的思路一样,遍历所有节点,取出链接
public class MyWebViewClient extends WebViewClient{
@Override
public void onPageFinished(WebView view, String url) {
view.getSettings().setJavaScriptEnabled(true);
super.onPageFinished(view, url);
addUrlClickListener(view);//待网页加载完全后设置图片点击的监听方法
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
view.getSettings().setJavaScriptEnabled(true);
super.onPageStarted(view, url, favicon);
}
private void addUrlClickListener(WebView webView) {
webView.loadUrl("javascript:(function(){ " + "var objs = document.getElementsByTagName(\"a\");"
+ " var array=new Array(); " + " for(var j=0;j<objs.length;j++){ " + "array[j]=objs[j].href;" + " } "
+ "for(var i=0;i<objs.length;i++){"
+"objs[i].i=i;"
+ "objs[i].οnclick=function(){ window.urllistener.openUrl(this.href,array,this.i);" + "} " + "} })()");
}
}
public class MJavascriptInterface {
private Context context;
public MJavascriptInterface(Context context) {
this.context = context;
}
@android.webkit.JavascriptInterface
public void openUrl(String url,String[] urls,int position) {
//这里对取到的URL进行操作就行了 }
}
使用的时候只需要加入以下就行
contentWebView.setWebViewClient(new MyWebViewClient());
contentWebView.addJavascriptInterface(new MJavascriptInterface(getActivity()), "urllistener");