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

1、配置webView

mWebView = findViewById(R.id.web);

mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER);

WebSettings webSettings = mWebView.getSettings();

webSettings.setJavaScriptEnabled(true);//设置能够解析Javascript

webSettings.setDomStorageEnabled(true);//设置适应Html5的一些方法

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

mWebView.addJavascriptInterface(mOpenImageJavaInterface, "imagelistener");

mWebView.setWebChromeClient(new WebChromeClient(){

@Override

public void onProgressChanged(WebView view, int newProgress) {

super.onProgressChanged(view, newProgress);

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

if(newProgress==100){

addImageClickListener(view);

}

}

private void addImageClickListener(WebView webView) {

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

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

"for(var i=0;i

"{"

+" var temp=i; "

+ " objs[i].οnclick=function() " +

" { "

+ " window.imagelistener.openImage(this.src); " +//通过js代码找到标签为img的代码块,设置点击的监听方法与本地的openImage方法进行连接

" } " +

"}" +

"})()");

}

});

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

}

/*返回html图片集合*/

public static List returnImageUrlsFromHtml(String htmlCode) {

List imageSrcList = new ArrayList();

if(TextUtils.isEmpty(htmlCode)){

return imageSrcList;

}

Pattern p = Pattern.compile("]*\\bsrc\\b\\s*=\\s*('|\")?([^'\"\n\r\f>]+(\\.jpg|\\.bmp|\\.eps|\\.gif|\\.mif|\\.miff|\\.png|\\.tif|\\.tiff|\\.svg|\\.wmf|\\.jpe|\\.jpeg|\\.dib|\\.ico|\\.tga|\\.cut|\\.pic|\\b)\\b)[^>]*>", Pattern.CASE_INSENSITIVE);

Matcher m = p.matcher(htmlCode);

String quote = null;

String src = null;

while (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);

}

if (imageSrcList == null || imageSrcList.size() == 0) {

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

return null;

}

return imageSrcList;

}

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

@android.webkit.JavascriptInterface

public void openImage(String src) {

if(!ClickUtil.canClick()||!ListUtil.haveData(mOpenImageJavaInterface.imageUrls)){

return;

}

int index=ListUtil.index(mOpenImageJavaInterface.imageUrls,src);

if(index==-1){

index=0;

}

showGalleryDialog(index);

}

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

if(mWebView!=null){

html = html.replace("

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

encoding, "");

}

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

声明:以上内容为作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任。

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

  1. 获取PC端微信小程序源码

    获取PC端微信小程序源码 参考文章链接 链接1 链接2 准备工具 解密工具 UnpackMiniApp.exe 下载链接 逆向工具 wxappUnpacker 下载链接1 下载链接2 整体流程 第 1 ...

  2. 微信小程序:随机头像大全,多分类带历史记录小程序源码

    这是一款头像小程序 用户可以在每一个分类随机头像 然后觉得满意可以保存到相册 支持多个分类,基本都是全了如下: 动漫头像 男生头像 女生头像 动漫男生 动漫女生 另外还支持多种流量主模式 具体大家自行 ...

  3. 课表网页完整的php代码,练手Lab课程表小程序源码v1.0.0 Thinkphp 前后端分离

    练手Lab课程表小程序源码是一个基于Thinkphp系统进行开发的前后端分离系统. 源码功能介绍 1.情侣功能 2.情侣间留言 3.情侣间互相设置课程表背景 4.自己日.周课程表背景设置 5.教务系统 ...

  4. 【小程序源码】随机头像大全,多分类带历史记录小程序源码下载

    这是一款头像小程序 用户可以在每一个分类随机头像 然后觉得满意可以保存到相册 支持多个分类,基本都是全了如下: 动漫头像 男生头像 女生头像 动漫男生 动漫女生 具体大家自行研究吧,小编就不多说了 下 ...

  5. 【Android App】实战项目之仿拼多多的直播带货(附源码和演示 超详细必看)

    需要源码请点赞关注收藏后评论区留言私信~~~ 近年来电商业态发生了不小的改变,传统的电商平台把商品分门别类,配上精美的图文说明供消费者挑选,新潮的电商平台则请来明星网红,开启直播秀向广大粉丝推销商品, ...

  6. 2022PHP智慧农场农业共享认养实时监控商品溯源农业众筹积分商城拼团秒杀小程序源码

  7. 小程序直播 OBS 画质_直播带货小程序系统

    直播带货小程序系统开发找许生:173-4068-9890(同微)加微领取从零到两个亿新零售学习资料,直播带货小程序模式开发,直播带货小程序公众号开发,直播带货小程序源码开发,直播带货小程序平台开发,直 ...

  8. 利物直播购物商城带货微信小程序源码

    源码说明 利物直播购物商城带货小程序源码,直播与购物深度结合的新体验,直播购物热度无需再多描述! 未来利物直播商城将深度的挖掘内容+电商的需求(内容:短视频带货,自媒体入驻文章带货,洋淘秀等具有强烈社 ...

  9. 2000套微信微信小程序源码+抖音微信小程序源码附开源代码

    授权微信小程序SDK(authing-wxapp-sdk)适用于微信微信小程序(打开新窗口)基于微信微信小程序环境.可以使用微信微信小程序源码中的所有方法,比如Get,修改用户信息,添加用户自定义字段 ...

最新文章

  1. mysql双机热备 读写分离_MySQL——主从复制与读写分离
  2. 如何聚焦自己的研究方向?一个实例研究
  3. 一步一步部署SSIS包图解教程1
  4. 常用Git指令常用git命令清单
  5. 银行界加强计算机病毒管理,银行计算机管理系统维护现状与对策研究(7.12).doc...
  6. UML和模式应用5:细化阶段(5)---系统顺序图
  7. android 源码中的单例,Android源码中的一种单例实现
  8. Clay:易塑的c#动态对象——第一部分:为什么我们需要它
  9. odoo 中实现多列搜索
  10. 实时错误‘429’:ActiveX控件不能创建对象
  11. 【回归预测-PNN分类】基于粒子群算法群优化概率神经网络算法实现空气质量评价预测附matlab代码
  12. Node.js项目总结及常用技巧
  13. App推广中常用名词
  14. linux redhate7 yum源,CentOS6.x网易163yum源配置
  15. 硬实时RTLinux?为Linux打实时preempt_rt补丁
  16. U173086易拉罐的硬度
  17. 使用SPI操作JTAG的两种方案
  18. 项目管理9大知识体系与5个具体阶段(zz)
  19. 七年级 电子计算机 教材分析,七年级信息技术下册教学计划
  20. win7滚动切换窗口快捷键

热门文章

  1. (六)关于beetlsql版本(分支)的说明
  2. elasticsearch体验(一.初识elasticsearch)
  3. (转)json+flexgrid+jbox组合运用页面刷新jsp
  4. 神奇的datetime和datetime,一毫秒引发的血案
  5. ubuntu 14.04 下 安装samba 及SSH 服务端的方法
  6. 如何通过NSLOOKUP 命令查看MX 记录
  7. mac合上盖子不锁屏_macbook合上盖子不断网的设置
  8. 【免费毕设】asp.net服装连锁店管理系统的设计与开发(源代码+lunwen)
  9. flowable工作流 流程变量_互联网架构设计漫谈 (6)-90%的架构师都知道的工作流原理...
  10. hashmap put过程_HashMap为什么线程不安全?