商品详情页html代码获取,直播带货小程序源码中,商品详情页是如何获取html图片的...

在搭建直播带货小程序源码过程中,需要为商品构建详情页,而商品页中的图片是要通过html获取并展示到本地的,那么这个过程是如何实现的?接下来小编将通过代码演示一下:

1、配置webView

mWebViel d :w = findViewById(R.id.web);

mWebView.setOverScroe % X e & k JllMode(View.OVER_SCRO] } ` M w y !LL_NEVER);

WebSettings webSettings = mWebV6 C L e b _ t w `iew.getSettings();

webSettings.setJa= R 8 j ! tvaScriptEnabled(true);//设置能够解析Javascript

webSettings.setc a ) d d W zDomSt3 A t norage& j 6 q i O Z @Enabled(true);//设置适应Html5的一些方法

2、添加点击事件监听和android与html交互接口:

mWebView.add; o 7 Y /JavascriptInterface(mOpenImageJavaInterface, "imagelistener");

mWebView.setWebChromeClient(new WebChromeClient(){

@Override

public void onProgressChanged(WebViey Z D ( Rw viev { 4w, int] N [ $ newProgress) {

super.onProgressChanged(viJ q ^ (ew, newProgr- U ress);

Log.d("===","newProgress=="+newProgress);

if(newProgress==100){

addImageClickListener(view);

}

}

private void addImageClickListener(WebView webView) {

webView.loadUrl("javascript:(function(){" +

"var objs = document.getElementsByTagName` 3 .(\"img\"); " +

"for(var i=0;i

"{"

+" vary G ~ # ; _ c _ & temp=i; "

+ " obje V s W ! #s[i].οnclick=function() " +

" { "

+ " window.imagelistener.openImage(this.src)e O y !; " +//通过js代码找到标签为img的代码块,设置x 9 i 6 3 [ l f ,点击O L l 4 n + K ( D的监听方法与本地的openImage方法进行连接

" } " +

"}" +

"})()");[ + Z V ,

}

});

3、本地利用正则解析html中的图片集合:

}

/*返回html图片集合*/

public static List returnImageUrlsFromHtml(String htmlCode) {

L3 d L J uist&lj ? 9 Jt;StringJ L Z&^ @ j , .gt;v Z # v t - N 2 imageSrcList = new ArrayList();

if(TextUtils.g / ! 2isEmpty(htmlCode)){

return image] - D , m 1 OSrcList;

}

Pattern p = Pattern.compile(` 4 M ] 8 6 [ -"]*\\bsru A l S yc\\b\\# * * ? b F _ ^s*=T s W R : V _ n\s*('|\")+ X ; _?([^'\"\n\r\f>]+(\\.jpg|\\.bmp|\\.eps|\\.gif|\8 2 M E H 0 W ] z\.mif|\\.miff|\\.png|\\.tif|\\.tiff|\I ( 4 ) a s #.svg|\\.wmf|\\.jpe|\\.jpeg|\\.dib|\\.ico|\\.tga|\\.cut|\\.pic|\\b)\\b)[^>]*>", Pattern.CASE_INSENSITIVE);

Matcher m = p.matcher(htmlCode);t s : A 6 ( k F

String quote = null;

St4 t n b 2 Oring src = null;

whi4 { w 3le (m.find()) {

quote = m.group(1);

src = (quote == null || quote.trim().length() == 0) ? m.group(2).split("//s+")[0] : m.group(2);

imageSrcList.add(src);

}

iG 2 h Qf (imageSrcList =P m 8 n A A= nB m ] P W ` 1ull || imageSrcLisd X x nt.size() == 0) {

Log.e("imageSrcList","资讯中未匹配到图片链接");

return null;

}

return imageSrcList;

}

4、实现本地对应html的点} y .击方法,并跳转画廊展示图片:

@android.webkit.JavascriptInterface

public void openImage(String src) {

if(!ClickUtil.canClick()||!ListUtil.haveData(mOpenImageJavaInterface.imageUrls| 0 8 m c 2 d Z {)){

return;

}

int index=ListUtil.index(mOpenImageJavaInterface.imageUrl. h P 3 ls,src);

if(index==-1){

index=0;

}

showGalle$ e i ! ^ ] s 4ryDialog(index);

}

5、WebView加载url,并调整WebView中图片的大: u - ^ %小:

if(mWebView!=& 7 7null){

html = html.replace(F U D q ] f"

mWebView.loadDataWithBaseURL("about:blank", html, mimeType,

encoding, "");

}

以上就是搭建直播带货小程序中,商品详情页是如何获取html图片并在本地展示的5 5 p过程。

声明:以上内容为作者本人原创,未经T W F * @ q作者本人同意,禁止转K 3 } : I 3 z I载,否则将追究相关法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值