Webview解析html源码

c# webview2获取网页HTML的绝招 private void button1_Click(object sender, EventArgs e) { // chromiumWebBrowser1.Load(textBox1.Text); this.webView21.Source = new System.Uri(textBox1.Text, System.UriKind.Absolute); } private void c... 阅读详情

webview加载网页的时候,如何获取html的源码,可以通过js来实现。

1:设置webview,js。

webView = (WebView) findViewById(R.id.wv);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.addJavascriptInterface(new InJavaScriptLocalObj(), "haha");
        webView.setWebViewClient(new MyWebViewClient());
        webView.loadUrl("http://m.baidu.com/");
2:在onpageFinish里面解析。通过js。

final class MyWebViewClient extends WebViewClient {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            Log.d("WebView", "onPageStarted");
            super.onPageStarted(view, url, favicon);
        }

        public void onPageFinished(WebView view, String url) {
            Log.d("WebView", "onPageFinished ");
            view.loadUrl("javascript:window.haha.showSource(document.getElementsByTagName('head')[0].innerHTML);");
            super.onPageFinished(view, url);
        }
    }

    final class InJavaScriptLocalObj {
        @JavascriptInterface
        public void showSource(String html) {
            Log.d("HTML", html);
            handleCode(html);
        }
    }

这样,在showSource中就可以获取html源码中的<head></head>中的代码。这样,可以读取html中的一些信息,完成h5和native的一些信息的交互。

最后,直接解析xml文件就可以了,当然,Android为我们提供了解析的api,就不要java中的方法解析了。

 public void handleCode(String html) {
        InputStream is = new ByteArrayInputStream(html.getBytes());
        //注意:这里如果使用下面这行代码,在2.3系统上有bug,会解析失败
//        XmlPullParser parser = Xml.newPullParser();
        try {
            XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
            parser.setInput(is, "utf-8");
            int type = parser.getEventType();
            while (type != XmlPullParser.END_DOCUMENT) {
                switch (type) {
                    case XmlPullParser.START_TAG:
                        //获取节点的名字
                        String s = parser.getName();
                        //命名空间+属性名
                        parser.getAttributeValue(null,"name");
//                        if ("meta".equals(parser.getName())) {
//                            log(parser.getAttributeValue(null, "name"));
//                            log(parser.getAttributeValue(null, "content"));
//                        }
                        break;
                }
                type = parser.next();
            }
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

注意事项:在和js交互中,你可以在showSource中打log看到,这里的线程不是主线程,所以,你如果要在这里处理一些UI,必须要放在主线程中,不然,你会发现UI的代码就是执行了,但是没变化,程序也没有crash,这个是千万要切记的。

第二个,这个解析的不要用直接new,还是通过factory来实现吧,不然在2.3上有bug。

三:有一个jar,jsoup这个可以更快捷的完成源码的解析,可惜首先要放到子线程中,应该是把源码下载下来,这样的话还是不太好。不太建议使用,小题大作了。

来个MainActivity.java,里面包含了完整的代码。点我1

C# 如何使用 webview2 调用本地html文件 5. 这样就可以使用了。可以用C#做一个框架,里面用webview2调用Html。利用css可以做出比较漂亮的界面。我这里使用了echarts 做了一些图表。1. 下载Microsoft.Web.WebView2。2. 工具箱里面会出现一个webview2的控件。3. 把这个控件拖到窗体上。 阅读详情

相关推荐

积木式移动互联网App Hybrid框架-modular源码解析(1)

现在现在解析一下modular的核心源码

伍友健的博客 387

通过WebView获取访问网页的源代码

1) 在layout.xml文件中布局webview控件 (略)  2) 在Activity中获取webview控件,并进行初始化  Java代码   mWebView = (WebView) findViewById(R.id.web);      mWebView.addJavascriptInterface(new MyJavaScript(), "HTML

tfy1332的专栏 1639

使用Android WebView加载和解析HTML和JavaScript

Android提供了WebView组件,它可以加载和显示HTML页面,并执行其中的JavaScript代码。本文将详细介绍如何在Android应用中使用WebView加载和解析HTML和JavaScript,并提供相应的示例代码。你可以通过为WebView设置WebViewClient和WebChromeClient来处理WebView中的网页事件,如页面加载完成、链接点击等。一旦启用了JavaScript支持,WebView将能够执行加载的网页中的JavaScript代码。步骤3:加载HTML内容。

ByteNinja的博客 389

02、获取 WebView 控件中,加载的 HTML 网页内容

在开发 app 的时候,WebView 是经常使用的控件。而且有时需要向 WebView 中的 html 内容 注入额外的 js 进行操作。这里记录一下在当前 WebView 控件中,获取 html 内容的方法。 运行效果: 1、首先在工程根目录下面放一个 test.html 文件,里面放入一些 html,作为测试内容: <!DOCTYPE ht...

weixin_30843605的博客 570

MUI框架电影新闻WebApp源码解析:移动端页面开发与Webview实战

围绕移动端WebApp开发中常见的页面切换、数据加载与交互体验问题,从基础概念讲起。传统响应式方案难以实现原生级操作手感,而基于HTML5 Plus Runtime的Webview多窗口管理机制,为页面转场和物理返回键控制提供了原生能力支撑。这类技术广泛应用于资讯、电商、工具类移动应用,尤其适合需要高频切换Tab和列表交互的场景。下拉刷新、上拉加载、卡片渲染与详情页参数传递,都是移动端开发的高频需求。通过拆解一个基于MUI框架的电影新闻WebApp源码,可以清晰看到从目录结构、页面组织到功能实现的全过程,并

weixin_29210727的博客 190

[转帖]通过WebView获取访问网页的源代码

NULL 博文链接:https://dai-lm.iteye.com/blog/1158470

oschina-app源码解析-webview重组html

有时候想用webview直接加载现成的我web页面,但是web页面直接放大手机上整体比较小,很难操作,说白了就是不合适,所以需要对html页面进行重组,直接上完整代码 String body = UIHelper.WEB_STYLE + newsDetail.getBody(); // 读取用户设置:是否加载文章图片--默认有wifi下始终加载图片 boolean isL

xiangxue336的专栏 1396

webview获取HTML源码

webview获取HTML源码,网上获取源码的比较多,过时的不过时的,看完自己出了一个简单好用的。

Android通过Jsoup解析Html源码

这是一篇通过WebView加载Html页面,接着解析其中的源码,最后在listview中显示并使用的文章 XML文件: 在代码的14行中将WebView隐藏,毕竟我们需要的不是整个html页面 MainActivity: WebViewClient的作用就是帮助WebView处理各种通知、请求事件的,onPageFinished顾名思义在页面加载完成

Android 1078

大数据运维面试题及答案

1. 架构组成:- 2 个 NameNode(Active 活跃节点、Standby 备用节点),实时同步元数据(通过 JournalNode 集群,默认 3 个节点,存储 edits 日志,Active 写入、Standby 读取以保持元数据一致);- 容错性强:通过 RDD 的 “ lineage(血缘)” 机制,任务失败时可快速重算,无需从头执行。:集群 “大脑”,管理元数据(文件目录、块位置),实时响应客户端请求,数据存于内存,元数据镜像(fsimage)和编辑日志(edits)持久化到磁盘;

weixin_42795092的博客 907

影刀RPA进阶:Excel多条件筛选与数据提取实战

本文详细介绍了如何利用影刀RPA实现Excel多条件筛选与数据提取的自动化。通过拆解文本、数值、日期及颜色筛选等核心指令,并结合实战案例,指导用户构建稳健的销售数据提取机器人,从而高效处理复杂数据报表,提升工作效率。

onion的博客 530

Android加载HTML背景,android textview 显示html方法解析

现在网络的繁盛时代,光文字是不能满足人们的胃口的,图片,flash,音频,视频就成为浏览网页的主流显示,在手机上也一样。在手机上显示从网络端获取的数据显示,大家很自然的想起两种方式,一种就是webview,一种就是TextView。当然webView直接显示html页面就行了,我主要说的TextView显示html内容。首先,说下TextView到底支持那些标签呢,通过对源码的查看,发现Textv...

weixin_32515445的博客 662

【Nordic实战】nRF54L15引脚规划:电源域、专用引脚与低功耗设计避坑指南

本文深入解析Nordic nRF54L15芯片的引脚规划策略,重点阐述其基于电源域(MCU域、PERI域、LP域)的GPIO分配原则。文章提供了从思维转变到实战避坑的完整指南,强调遵循专用引脚与域对应关系是实现超低功耗设计的关键,并分享了系统化的引脚规划流程与工具使用建议。

weixin_29192141的博客 321

分享一个完美的新闻客户端(酷商城)Android源码

分享一个完美的新闻客户端(酷商城)Android源码,这个源码项目是从安卓教程网转载过来的,项目主要是解析html,fragment,异步缓存图片加载,webview加载网页等。可以正常的运行的,我已经测试过了。 <ignore_js_op> 1 <ignore_js_op> 原文地址:http://android.6...

weixin_38169722的博客 122

.ipynb文件深度解析:从JSON结构到Jupyter Notebook高效使用指南

在Python开发与数据处理领域,交互式编程正成为探索数据与验证思路的高效方式。Jupyter Notebook作为最流行的交互式环境之一,其默认文件格式.ipynb本质是一个基于JSON的文本文件,内部通过单元格组织代码、说明文字与运行结果。理解其JSON结构,不仅有助于掌握Notebook的存储原理,更能为文件损坏修复、版本控制与自动化转换提供基础。依托对单元格类型、魔法命令及输出可视化的熟练运用,数据分析和数据可视化流程可以变得更为流畅。同时,借助VS Code、nbconvert等工具,开发者能将.

weixin_28839629的博客 350

基于YOLOv10深度学习的花生种子霉变检测系统

YOLO(You Only Look Once)是当前最先进的目标检测算法之一,具有快速、精准的特性。YOLOv10是YOLO系列的最新版本,相较于之前的版本,YOLOv10在特征提取、模型精度和速度上都有了显著的提升。YOLOv10采用了更深的卷积神经网络、更多的跨层特征融合方法,使得其在不同尺寸物体的检测和复杂场景的处理上都表现出了优异的性能。YOLOv10特别适合应用在需要快速处理并检测大量图像的任务中,如花生种子霉变检测等,能够实现精准、高效的检测。

2201_76125393的博客 648

【Android进阶】Android js 与 Android 互调方法

Android 客户端启动速度优化之「垃圾回收」

Misdirection_XG的博客 1333

【学习系列】SAP RAP 22:Excel文件上传和读取(非扩展&扩展方式)

本文介绍了在RAP中实现Excel文件上传处理的三种方法:1) 使用@Semantics.largeObject注解实现简单上传下载,但限制在ObjectPage页面使用;2) 通过自定义action弹窗实现上传功能,但存在无法自动刷新列表等限制;3) 结合CustomUIExtension实现更灵活的完整功能,但需要UI5开发技能。文章详细说明了每种方法的实现步骤,包括数据库表设计、注解配置、前端界面开发和后端处理逻辑,并比较了各自的优缺点。最后通过一个处理不同币种数据的示例,展示了如何实现业务处理逻辑。

DeveloperMrMeng的博客 623

Android WebView之与 JaveScript交互

例如获取网页内容设置WebView Enable JavaScriptmWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj"); Java供Js调用的类 final class InJavaScriptL

stwstw0123的专栏 2106

统信UOS丨开机无法进入系统 无法打开控制台访问权限,root账号被锁定(cannot open access to console, the root account is locked)

步骤四:分别打开文件发现Roota下的fstab就是我们要找的文件,打开查看Roota的属性发现其为挂载的磁盘nvme0n1p3。步骤三:按Win+E打开文件管理器在分区中查找/etc/fstab文件,发现Roota和Rootb下都有该文件。步骤二:按键盘Ctrl+Alt+F4,进入终端控制台,如下图所示输入startx回车,进入桌面。步骤一:找到UOS系统安装的U盘,选择U盘启动进入安装界面,如下图所示。步骤七:关机,拔出U盘,启动电脑,OK,问题解决。

Reyn_观极 1万+

Android 15.0 首次开机默认授予app运行时权限(去掉运行时授权弹窗)

在15.0的系统rom产品定制化开发中,在6.0以后对于权限的申请,都需要动态申请,所以会在系统首次启动后,在app的首次运行时, 会弹出授权窗口,会让用户手动授予app运行时权限,在由于系统产品开发需要要求默认授予app运行时权限,不需要用户默认授予运行时弹窗,所以需要在首次开机默认授予所有app运行时权限

安卓兼职framework和app工程师的博客 1204

Android中Textview显示带html文本一-------【HTML标签】

测试自定义标签

2503_92095625的博客 891

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WinUI 3 WebView2 控件全解析:在 microsoft-ui-xaml 中托管 HTML 内容与 JS 双向通信

本指南围绕 microsoft-ui-xaml 仓库中的 WebView2 控件展开,它是以 Microsoft Edge(Chromium 引擎)为内核、面向 WinUI 3.0 的新一代网页宿主控件,可替代基于 EdgeHTML 的旧版 WebView。读完本文你将掌握:如何在 XAML 中通过 `Source` 加载远程与本地 HTML、如何用 `NavigateToString` 与 `E

gitblog_00852的博客 12

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

vscode-web-visual-editor 核心功能解析:预览与源码双向实时同步是如何实现的

vscode-web-visual-editor 是一款 VSCode 的 HTML 可视化编辑扩展,其核心能力是**预览与源码的双向实时同步**:你在源码编辑器里的每一次击键都会立刻反映到预览视图中;反过来,在预览里选中、编辑、拖拽元素后,变更也会瞬间写回 HTML 源码。下面这篇文章带你快速看懂这套同步机制的实现思路,无需阅读源码也能理解它的运作方式。 [![vscode-web-visua

gitblog_00599的博客 341

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WebView获取网页代码并截取所需信息的三种方式

话不多说,直接步入正题.基本设置:webView.getSettings().setJavaScriptEnabled(true);方式一:截取网页内容,解析Step1.webView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");Step2. 在 WebViewActivity 中,创建这个内部类.final...

Phosphophyllite的博客 4068
上一篇: 倒计时的实现
下一篇: Handler简介及分析
arplay
博客等级 码龄12年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值