Android 从带有html标签的String字符串中提取网页链接url
admin
2024-04-17 05:13:13
0

最近在做一个需求,要求把服务端下发的内容以超链接文本形式展示,且需要从app内部的浏览器打开。

这个需求包含了以下需要实现的内容,让我们来看一看。

1 把服务端下发的String内容以超链接文本形式展示

服务端下发的内容String如下:

XXX

String内容是一个HTML标签。

熟悉android超链接文本处理的朋友应该知道可以通过Html类的fromHtml方法来把这个String解析成一个SpannableString,从而把这个SpannableString设置在TextView上就可以将服务器下发的内容展示成超文本链接并点击跳转了。

2 提取String内容里的url链接

第一步不难,但是要把这个链接从app内部的浏览器打开还是需要一些处理的。

想要在app内部打开链接,首先我们要知道链接是什么以及怎么获取到这个链接。

经过一番的网上查询以及实验,最终找到了获取url的方法。

TextView提供了一个getUrls()方法,这个方法返回了一个URLSpan数组。

而这个URLSpan数组就是如果当前TextView设置的内容是SpannableString,则这个数组里包含了这个String所有的URLSpan。(这部分是猜测出来的,没有经过太多验证。因为自己调试的时候测试数据只包含了一个URLSpan,一般场景也就配一个跳转链接)

所以提取url的方法就是

val url = textView.urls[0].url

这样就能把TextView的跳转链接获取到了。

3 设置点击事件为打开app内部浏览器

在给TextView设置超文本链接的Spanned之后,我们想要给TextView设置onClick事件,让它点击之后唤起app内部的网页浏览页面。

但是设置完onClick事件后,我们发现TextView点击后还是从手机系统的浏览器打开了链接。

反复查询之后发现原来设置SpannableString还会给TextView设置一个属性叫LinkMovementMethod.

如果不设置这个属性,之前的SpannableString是不会自动打开系统浏览器的。

设置之后它的优先级会比onClick事件要高。

所以如果设置完onClick事件后,发现还是从手机系统打开浏览器,要检查一下这个LinkMovementMethod是否设置。

我们直接在设置onClick前把MovementMethod设置为null即可。

textView.movementMethod = null

这样一来就可以通过onClick事件打开app内部的浏览器,把url作为参数,打开超链接文本的链接了。

相关内容

热门资讯

提前布局硬科技企业,银行系“耐... 国产DRAM龙头长鑫科技7月16日启动科创板新股申购。招股书显示,金融资产投资公司(AIC)等银行系...
沈阳本地有哪些可满足小单需求的... 沈阳本地定制服装行业需求现状 近年来沈阳本地各类企事业单位的文化建设、活动筹办、员工工装配置需求处于...
25.47万亿元!上半年外贸创... 本报(chinatimes.net.cn)记者张智 北京报道 尽管今年外部环境复杂多变,但我国进出口...
四季陪伴 | 资产配置策略真的... 来源:中信银行微生活 01 一个无法回避的问题 2026年上半年结束了。打开账户,很多持有“四季组...
神秘大资金出手了。。 大资金再出手! 时隔15个月,ETF市场再现神秘资金抄底行情。 仅两个交易日,全市场股票ETF净流入...
梁文锋登顶全球大模型首富 据7月15日更新的彭博亿万富翁指数最新数据,DeepSeek创始人梁文锋以360亿美元净资产位列全球...
中央通报3起典型问题:国企投资... 2026年7月15日,中央层面整治形式主义为基层减负专项工作机制办公室和中央纪委办公厅公开通报3起整...
7月15日主题复盘 | 医药股... 一、行情回顾 市场全天震荡调整,科创50指数跌超4%。医药股逆势走强,迪哲医药、博瑞医药、昭衍新药等...
原创 莫... 印度这次跟美国的贸易谈判,摆出的架势让我们看了直摇头。莫迪政府张口就要"比中国还低的关税待遇",这个...
原创 今... 家人们谁懂啊,今早6点刷到的黄金分析还写着「4100横盘待变,4021是铁底」,结果8点半美国6月C...
近3亿套现落空!零售巨头物美集... 图片来源:图虫创意 横跨南北多省布局、拥有多个连锁品牌的老牌零售巨头——物美科技集团有限公司(以下简...
常州第一大独角兽企业:估值30... 根据胡润研究院的界定,独角兽企业指的是成立于2000年之后、估值超过10亿美元的非上市企业。这类企业...
长鑫科技回应董事长发股权激励,... 7月15日下午,存储厂商长鑫科技召开网上投资者交流会,该公司董事长朱一明在与投资者的交流中谈及公司登...
原创 D... 彭博、《金融时报》近期同步曝光,曾经宣称 “不融资、不上市、不商业化” 的 DeepSeek,正式推...
原创 7... 科创板史上最大IPO的发行价终于落地了。 长鑫科技每股定在8.66元,刚好卡在市场之前预测的7-10...
002731连续15个跌停后巨... 文/帅可聪 7月15日,在连续15个交易日跌停后,*ST萃华(002731.SZ)股价盘中出现异动。...
原创 4... 那个被全球资本疯狂追逐的电商巨头,终于要IPO了。 作者 | 云帆 来源 | 投资家(ID:touz...
上半年我国芯片日均产量超15亿... 国家统计局新闻发言人、国民经济综合统计司负责人王冠华7月15日在国新办新闻发布会上表示,今年上半年,...
从百人团队到近7000人!小米... 八载深耕积淀,科创步履不停。7月15日,小米集团华东总部迎来8周年生日。南京建邺区相关领导、小米集团...
原创 重... 2026年7月13日,国务院正式批复了《扩大消费"十五五"规划》。 目标写得明明白白,到2030年,...