前言
一些需求确实比较变态,官网上api 方法太多,看的朦朦胧胧,是懂非懂,加下强大的搜索引擎,不难找不到解决的方法。
获取网页title
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
if (!TextUtils.isEmpty(title)) {
Log.e(TAG, "onReceivedTitle:title " +title );
}
}
}
获取长按处图片url
mWebView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// webview长按后,通过getHitTestResult()方法可以得到一个HitTestResult对象,通过这个对象可以知道点击区域的内容是什么mimeType以及对应的url。
WebView.HitTestResult result = mWebView.getHitTestResult();
if (result.getType() == WebView.HitTestResult.IMAGE_TYPE) {
String url = result.getExtra();
Log.e(TAG, "onLongClick:长按处图片 url " + url );
return true;
}
return false;
}
});
获取网页所有图片url
mWebView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
Log.e(TAG, "shouldInterceptRequest: " + url );
}
}
return null;
}
//第二个方法是v21才有的,用于替代第一个方法
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
Log.e(TAG, "shouldInterceptRequest: 替代 " + request.getUrl() );
String imgUrl = request.getUrl().toString();
if(imgUrl.endsWith(".png") || imgUrl.endsWith(".jpg") ){
iconList.add(imgUrl);
}
return super.shouldInterceptRequest(view, request);
}
});