webview 解析
需求 :
解析webview内的商品图片地址,店铺头像
定义内部类 Hand
class Hand {
@JavascriptInterface
public void getImageurl(String data){
// Log.e("网页内容", data);
Document document=Jsoup.parse(data);
Element dianpu=document.select("[class=lf_icon]").first();
Element imgele=dianpu.getElementsByTag("img").first();
String mg=imgele.attr("src");
Log.e("店铺图片", mg);
if(mg!=null){
mShareshopImage=mg;
}
//商品
Element element=document.select("[class=new_xq_img]").first();
Element element2=element.getElementsByTag("img").first();
String m=element2.attr("src");
Log.e("图片地址", m);
if(m!=null){
mShareGoodImage=m;
}
}
}
上面内部类把获取的body内容用Jsoup解析 获取到需要的内容。
设置webview
webView.addJavascriptInterface(new Hand(), "handler");
在webview 的setWebViewClient 方法中重写 onPageFinished 方法
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.handler.getImageurl(document.body.innerHTML);");
mShareUrl=url;
super.onPageFinished(view, url);
}
点击webview的图片得到图片地址
直接代码
webView.setOnLongClickListener(new OnLongClickListener() {
@SuppressLint("NewApi") @Override
public boolean onLongClick(View v) {
WebView.HitTestResult result=webView.getHitTestResult();
if (result != null) {
int type = result.getType();
if (type == WebView.HitTestResult.IMAGE_TYPE || type == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
String imgurl = result.getExtra();
Toast.makeText(activity, imgurl, Toast.LENGTH_SHORT).show();
MyPopWinDow popWinDow=new MyPopWinDow(activity, MyPopWinDow.IMAGE_VIEW_POPUPWINDOW, 300, 350);
popWinDow.showAtLocation(v, Gravity.CENTER, 0, 0);
}
}
return true;
}
});
本文介绍如何在Android的WebView中解析商品图片和店铺头像的URL,并实现点击WebView图片时获取图片地址的功能。通过定义内部类Hand利用Jsoup解析网页内容,然后在WebView的setWebViewClient中重写onPageFinished方法来处理页面加载完成后的操作。此外,通过设置webView的OnLongClickListener监听长按事件,达到获取图片地址的目的。
3460

被折叠的 条评论
为什么被折叠?



