Webview获取连续H5页面的标题

Android开发笔记之如何正确获取WebView的网页Title 前言 现在APP中用到H5页面的越来越多,而如何正确获取WebView的网页title是必须要考虑的。 最近做项目的时候,老大让我把之前做的webview打开网页的功能修改一下,说是要动态的获取网页的标题,然后显示在我们自己app的标题栏上,然后我就屁颠屁颠的跑去看webview的源码,看看有没有获取标题这个方法。 网上能查的大部分方法都是在WebChromeClient的onReceivedTitle(WebView view, String title)中拿到title。但是这个方法在网页回退时是无法拿到正确的上一级标题的,网上的处理方法是自己维护一个List去缓存标题,在执行完webV 立即下载

在应用中,有的页面会使用h5来实现,而title确是客户端来实现的,正确的获取h5的标题,设置正确的title

是必须的。

这个在webview中通过api很容易实现。只需要调用这个方法就可以了。

mWebView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);
                Log.v(TAG,"title:"+title);
            }
        });

这样的确可以实现设置标题,但是问题来了,你会发现当H5不断的打开,你的标题也跟着相应变化,但是当你点了back键后,页面不断的回退,但是标题确没有任何变化,打开log,原来返回的时候根本没有走onReceivedTitle这个方法。

这个时候,我们可以借助集合来解决这个问题,记录每个网址对应的title,然后在onpagefinish中进行设置。

//记录URL和title
    private String mCurrentUrl;
    private Map<String,String> titles = new HashMap<String,String>();
    mWebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                mWebView.loadUrl(url);
                return true;
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                Log.v(TAG,"start:"+url);
                mCurrentUrl = url;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                Log.v(TAG,"finish:"+url);
                String title = titles.get(url);
                if (!TextUtils.isEmpty(title)){
                    mTitle.setText(title);
                }
            }
        });

        mWebView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);
                Log.v(TAG,"title:"+title);
                if (TextUtils.isEmpty(title)){
                    title = "";
                }
                titles.put(mCurrentUrl,title);
            }
        });
好了,这样,在onpagestart中记录url,在onpagefinish中从集合中取出,这样就解决了问题。


智能车竞赛走马观碑组:如何高效识别目标板并优化绕行策略(附实战代码) 本文深入探讨了智能车竞赛走马观碑组中,如何构建从图像识别到路径决策的全栈优化方案。针对目标板识别与绕行策略的核心难点,文章详细解析了基于MobileNetV2的高效识别流水线、结合预瞄点与纯追踪算法的平滑路径规划,以及横向与纵向协同控制策略,并提供了实战代码与调试指南,旨在全面提升小车的比赛表现。 阅读详情

相关推荐

Windows下的Geant4安装教程

本教程将从0开始展示在Windows下如何安装Geant4,包括各种辅助工具(QT、Cmake、Visual Studio)的下载安装,环境变量的配置,以及example的生成等。

weixin_49065278的博客 4107

webView 的获取页面title的

获取h5页面的携带的title中是很简单的 ,昨天脑子一糊涂就研究了一下午都不知道怎么获取。 加载Android加载h5中有两个方法 第一个 webview.setWebChromeClient     第二个是webview.setwebviewClient. setWebChromeClient辅助WebView处理JavaScript的对话框,网站图标,网站title,加载进度等; ...

xukangone的博客 4079

STM32L452与FPGA通信翻车?手把手教你关闭I2C时钟延展避坑(附OVR错误解决方案)

本文深入解析STM32L452与FPGA在I2C通信中因时钟延展功能导致的常见问题,提供关闭I2C时钟延展的详细配置方法(NOSTRETCH模式),并针对可能出现的OVR错误给出Combined模式解决方案。通过实战案例和波形分析,帮助工程师快速排查和解决嵌入式系统中的I2C兼容性问题。

e3f4g5的博客 215

Flutter 插件:WebView与H5页面混合开发(flutter_webview_plugin)

2020/12/5,星期六,在公司给春节调休第一天,星期天不给空调,冻得脚儿腕儿疼,马上下班了,刚学会WebView赶快写成博客记录下来...flutter_webview_plugin引用WebView基础使用H5返回Flutter首页 废话不多说,先来康康今天的效果图~ 效果图(1.1): 老思路,先来分析一下: 在界面上有5个按钮,点击每个按钮跳转到对应的布局 点击H5页面的返回按键,返回到Flutter页面 flutter_webview_plugin引用 官方文档 flutter_webvi

高级开发者进阶ing... QaQ 9162

【FPGA】Robei EDA 的使用(7)—— Robei文件上板试验

#沐朝露兮以自华,觅大道兮以求成 我又滚过来了,研究了20多天RISCV,结果最后因为硬件问题导致无法在比赛中使用RISCV CPU,虽然已经临近比赛后期了,非常的崩溃,但是也没有什么办法。唉,一切不过是从头再来罢了。(写写博客舒缓我心中苦闷) ————————————————进入正文的分割线———————————————— 今天介绍一下如何利用 Robei EDA 生成文件,导入vivado中,综合下载到开发板里。拿我一个PWM控制舵机的代码为例。 Robei EDA设置 假设代码模块(model文件)经

Ninquelote的博客 2562

第四章节 Qt字符串QString详解

QString 的使用方式和 C++标准库的 std::string 字符串的非常相似。

m0_65635427的博客 890

Android WebView 获取页面 Title 的正确姿势

现在 Android 开发中用到 WebView 的地方越来越多,开发中经常会遇到 WebView 的坑,这里先转载二篇很好的文章,WebView 开发时如果遇到了问题可以先去这二篇文章里面看看。

Alex_Zhao 的博客 2万+

BLDC&PMSM电机控制器硬件设计工程(一)概述&需求&规划

这里是一个专注于电机控制器硬件工程的开放社区与知识仓库。我们的核心使命是分享、交流与共创,致力于解开无刷直流电机(BLDC)和永磁同步电机(PMSM)中、大功率控制器硬件设计,包括驱动IC选型,电流传感器选型,控制IC,母线电容计算,功率模块(IGBT、MOS管)选型以及大功率功率模块驱动电源设计。功率等级: 重点关注中等功率(如500W-10kW) 并向大功率(10kW以上) 延伸,探讨对应的功率器件(如MOSFET, IGBT, SiC)选型与驱动。

小幽余生不加糖 638

Android与WebView 交互 获取H5网页标签内容

在与H5交互中,通常会有类似的需求,获取H5页面中的某个标签的值: <title>标题</title> <meta name="shareurl" content="https://test2.bytsz.com.cn/thematic/2020/041587621694289.html"> <meta name="shareicon" content="...

zuo_er_lyf的博客 2840

升级conda时出现Malformed version string invalid chars错误解决方案

但有时,当你使用“conda upgrade”的命令时,你可能会遇到一个错误,提示你的环境解析失败,出现“Malformed version string invalid chars”错误消息。如果以上两个步骤都没有解决你的问题,那么你可以考虑更新conda的依赖项。如果你的conda版本已经是最新的,那么你需要清理conda的缓存。最后,如果以上方法都无法解决问题,你可以尝试使用pip进行更新。如果你的conda版本过旧,你需要先更新conda。首先,你需要确认你当前使用的conda版本。

BUG?不存在的! 1409

【YOLOv11多模态融合改进】(可见光+红外)涉及像素级融合、特征级融合(中期、中后期、后期)、决策级融合的完整配置步骤以及二次改进方案

在网络输入阶段将多模态数据直接合并,形成统一的特征表示。

Limiiiing的博客 1967

Android WebView中获取网页的title (包括调用goback)

转于:http://blog.youkuaiyun.com/janronehoo/article/details/47150489   ---------------------------------------------------------------------------------------    webview 获取 网页的title    [java] view ...

键盘上的舞者 327

第229篇 轨迹时间参数化——TOPP-RA和速度约束处理

本文介绍了时间最优路径参数化(TOPP)问题及其解法。TOPP研究如何在给定空间路径上分配时间,使机器人运动时间最短且不超速,需满足速度、加速度和力矩约束。经典解法采用相平面法,通过前向和后向扫描确定最优速度曲线。TOPP-RA改进了数值稳定性,支持多约束处理。文章对比了TOPP与轨迹优化的区别,列举了开源工具,并解答了面试常见问题,指出TOPP广泛应用于机械臂、AGV等领域。TOPP不改变路径形状,仅优化速度分配,其最优解具有bang-bang特性。

郑伟强dev的专栏 322

uniapp通过webview调用H5页面

tip:网页内 iframe 的域名也需要配置到域名白名单。 tip:开发者工具上,可以在 web-view 组件上通过右键 - 调试,打开 web-view 组件的调试。 tip:每个页面只能有一个 web-view,web-view 会自动铺满整个页面,并覆盖其他组件。 tip:web-view 网页与小程序之间不支持除 JSSDK 提供的接口之外的通信。 tip:在 iOS 中,若存在JSSDK接口调用无响应的情况,可在 web-view 的 src 后面加个#wechat_redirect解决。 t

qq_43344133的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Andorid App 通过webview内嵌h5获取定位

2、使用uni app 提供的uni.getLocation方法获取定位,建议使用国标局类型的,使用过wgs84的,但是有些机子获取的定位要么获取不到定位要么定位很奇怪,没有仔细研究过源码,也不好直接说问题出在哪里。使用这种方法部分手机会出现超时问题,不过依然能够获取到定位地址,可以将超时时间设置的大一些就不会出现这种问题,另外设置一个延时也是可以的。5、使用完辅助 H5 页面定位功能时,及时停止该功能,避免不必要的设备能耗开销。3、在设置webview属性之前开启辅助定位,在设置属性之后体验不好。

小土豆 4396

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

用webview内嵌h5页面,webviw实现分享微信支付功能 , h5传参跳转web-view 微信小程序

<web-view src="https://www.meishahui.com/wap/index.html" bindmessage="h5PostMessage"></web-view>

weixin_44690999的博客 6972

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

iOS webView与H5的交互(返回页面的处理)

当在一个页面触发一个事件跳转到一个H5页面时,H5页面内部也可以进行下一级的跳转,这个时候我们导航栏使用苹果原生的返回按钮就需要处理页面中的返回效果。是返回到pushH5的上一级页面还是返回H5内部的上一级页面? - (void)viewDidLoad { [super viewDidLoad]; UIButton * backButton = [UIButton buttonWithT

Flying_in_the_world的专栏 3428

安卓开发webview无法获取到h5页面document.title后的标题

在实际开发中安卓webview经常会被用到    如果遇到无法获取到h5页面document.title后的标题的情况可参考一下解决方案 mWebView.setWebChromeClient(new WebChromeClient(){             @Override             public void onReceivedTitle(WebView view, St...

q9104422999的博客 1872

Webview获取连续H5页面的title,并解决回退时title不变的问题

在应用中,有的页面会使用h5来实现,而title确是客户端来实现的,正确的获取h5的标题,设置正确的title 是必须的。 这个在webview中通过api很容易实现。只需要调用这个方法就可以了。 mWebView.setWebChromeClient(new WebChromeClient(){             @Override             publi

Nothing 5259

WebView控制h5视频播放页面

相信大家看到这个标题,就已经知道是通过在Webview中写入js,从而控制某个网页页面的播放。具体要如何实现呢? 1. 全屏 这里以爱奇艺的网页为例,当我们拿到它的一个网页url播放链接,用平板运行的时候,播放器不会是全屏状态,当我们点击全屏图标的时候,希望它能像网页那样全屏展示播放,但是实际情况是,你点击全屏,它也根本无动于衷。所以我们应该怎样做,才会自动实现全屏呢? 这里有1个难题要解决...

huang_xiao_yu的博客 7368

Android与H5交互 -- 点击H5跳转到 Android原生 页面 ,webview与h5(js)交互

app开发过程中,利用原生+h5模式来开发是比较常见的下面案例演示的是:原生调起一个H5页面,然后H5点击跳转到原生。

afufufufu的博客 1万+

解决uniapp使用webview跳转H5出现双标题

场景是用uniapp打个一个apk包,使用webview外链H5,但是出现了2个title,我的做法是隐藏apk的标题。隐藏之后出现一个问题,h5的标题和手机状态栏重叠了,uniapp webview的文档内容很少。在mounted中执行一下代码有用。

weixin_41894940的博客 1070

android设置页面标题,Android开发笔记之如何正确获取WebView的网页Title

前言现在APP中用到H5页面的越来越多,而如何正确获取WebView的网页title是必须要考虑的。最近做项目的时候,老大让我把之前做的webview打开网页的功能修改一下,说是要动态的获取网页的标题,然后显示在我们自己app的标题栏上,然后我就屁颠屁颠的跑去看webview的源码,看看有没有获取标题这个方法。网上能查的大部分方法都是在WebChromeClient的onReceivedTitle...

weixin_33359523的博客 574

H5+ Webview窗口对象

Webview模块管理应用窗口界面,实现多窗口的逻辑控制管理操作。通过plus.webview可获取应用界面管理对象。在MUI中所有的窗口处理过程中都是在借助于H5+中的webview对象来实现的。

记录和分享属于我的“IT”时光。 5078

WebView与H5交互

val settings = rm_webview.settings settings.javaScriptEnabled = true settings.domStorageEnabled = true settings.javaScriptCanOpenWindowsAutomatically = true settings.cacheMode = WebSettings.LOAD_DEFAULT settings.setAppCacheEnabled(true) settings.setSuppor.

weixin_41194750的博客 345

uniapp使用webview内嵌H5的注意事项

各小程序平台,web-view 加载的 url 需要在后台配置域名白名单,包括内部再次 iframe 内嵌的其他 url。是一个 web 浏览器组件,可以用来承载网页的容器,会自动铺满整个页面(nvue 使用需要手动指定宽高)。关于webview的使用,除了了解相关属性,其中webview-style才对app生效,值得关注。webview-style设置的样式,针对app生效,style的定义方式兼容web;

blackcat88的博客 7117
上一篇: View,Activity,Window三者的关系
下一篇: 创建,删除文件或文件夹及判断其是否存在
arplay
博客等级 码龄12年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值