iOS 数据优化之处理HTML字符串

iOS 数据优化之处理HTML字符串,第1张

富文本转html字符串

字符串转富文本

最近项目遇到的问题,因为后台返回的数据是HTML字符串,所以就按照常规处理方式把HTML字符串转换成富文本的字符串来处理,事实证明,tableview会非常卡,并且造成线程阻塞,无法响应事件

解决方案1首先我想到的是把耗时 *** 作放在子线程来 *** 作

解决方案2 因为是cell展示,所以只需要展示文本信息就行,那就过滤掉HTML标签,瞬间解决所有问题。所以在列表展示数据的时候HTML转换NSAttributedString一定要慎用

下面简单介绍一下NSScanner

NSScanner是一个类,用于在字符串中扫描指定的字符,翻译成我们需要的字符串或者数字,核心就是位置的移动 即scanLocation的移动变化

在上面的方法中首先指明了要扫描的对象 html(NSString) NSString text 很重要 把我们要扫描出来的字符串存到text里面

而这个扫描到的字符串就是>之前的字符串 scanUpToString这个方法的意思是将scanLocation停留在>之前 并把之前的字符串传给text。

回头来看看我们去除html标签的方法 整个过程都是在扫描过程中进行的NSScanner在执行scanUpToString这个方法时一旦扫描到需要的字符串比如例子中的“<”,其scanLocation就会变为html的初始位置。所以,要在执行完一次完整的扫描后 把html标签用空字符串替换掉,在进行下一次扫描,也就是说再while中 html字符串的标签字符会越来越少,而每次扫描的初始位置相对没有变化都停留在上一次扫描结束的位置,即"<"标签的前面。

参考链接----传送门

有的时候,我们的app需要显示html标签的效果,这个时候,如果需求不是特别复杂的话,我们都是可以使用textView来实现的。对冉Label也可以实现,但是label很难实现超链接的点击效果,所以,还是建议使用textView。

normalFontheightWithWidth方法如下:(供参考)

附超链接的属性:

加油吧!

NSURL urlNosmoke = [NSURL URLWithString:[NSString stringWithFormat:@"nosmokeProgramhtml"]];

NSString strFilePath = [selfviewControllercommandDelegate pathForResource:[urlNosmoke path]];

NSURL urlNonSmoking = [NSURL URLWithString:@"nonSmokingId=2013" relativeToURL:[NSURL URLWithString:strFilePath]];

NSURLRequest req = [[NSURLRequest alloc] initWithURL:urlNonSmoking

cachePolicy:NSURLRequestUseProtocolCachePolicy

timeoutInterval:200f];

[selfviewControllerwebViewEngine loadRequest:req];

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    NSString strHTML = @"<p>你好</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是一个例子,请显示</p><p>外加一个table</p><table><tbody><tr class=\"firstRow\"><td valign=\"top\" width=\"261\">aaaa</td><td valign=\"top\" width=\"261\">bbbb</td><td valign=\"top\" width=\"261\">cccc</td></tr></tbody></table><p><br/></p>";

    

    UIWebView webView = [[UIWebView alloc] initWithFrame:selfviewframe];

    [selfview addSubview:webView];

    

    [webView loadHTMLString:strHTML baseURL:nil];

}

html的引用标签是<a>标签

主要格式为<a href="链接地址,默认为#">名称</a>

在所有浏览器中,链接的默认外观是:

未被访问的链接带有下划线而且是蓝色的

已被访问的链接带有下划线而且是紫色的

活动链接带有下划线而且是红色的

两种方法,一种是“普通封装+企业签名”,一种是“免签封装”

封装就是将HTML5网页封装成一个APP,安卓封装APP可以直接安装,但是ios系统对应用的安装是有限制的,非App Store下载的应用必须要做苹果签名才能成功安装,所以封装iOS应用后,还需要做一个签名。

另一种是免签封装,这个就比较方便了,这个是专门针对ios系统的,快速封装iOS应用且不需要签名。借助开发者服务平台 *** 作很简单。

免签封装步骤:

百度搜索亥著,只需要提供应用名称、网页网址、应用logo,就可以快速封装成一个ios应用了。

以上就是关于iOS 数据优化之处理HTML字符串全部的内容,包括:iOS 数据优化之处理HTML字符串、ios 显示html标签,超链接颜色以及下划线的处理、IOS打开一个本地html,怎么给他带上一个参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10048768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存