iOS的webView如何实现html的离线缓存

iOS的webView如何实现html的离线缓存,第1张

方法一:离线获取获取到html代码。html代码你可以把他理解成是一个很长的字符串。通过正则表达式把这个html页面里的所有img标签url。如果是相对url,就加上host。如果是绝对url,就直接下载。这样这个页面里的所有图片路径都拿到了。

方法一的获取img标签url的正则表达式:

NSString *urlPattern = @"<img[^>]+?src=[\"']?([^>'\"]+)[\"']?"

方法二:通过webview和js 本地程序的交换,获取到html页面所有图片下载地址。

webview和本地程序交互的方法是_detailWebView stringByEvaluatingJavaScriptFromString。

可以的,ioswebview加载html能获取当前url,代码如下:

[objc]

@property (strong,nonatomic)UIWebView *webView

@property (strong,nonatomic)NSString *currentURL

@property (strong,nonatomic)NSString *currentTitle

@property (strong,nonatomic)NSString *currentHTML

[objc] view plaincopy

---------------------------------

[objc]

[objc]

-(void) webViewDidFinishLoad:(UIWebView *)webView {

[UIApplicationsharedApplication].networkActivityIndicatorVisible =NO

self.title = [webViewstringByEvaluatingJavaScriptFromString:@"document.title"]//获取当前页面的title

self.currentURL = webView.request.URL.absoluteString

NSLog(@"title-%@--url-%@--",self.title,self.currentURL)

NSString *lJs = @"document.documentElement.innerHTML"//获取当前网页的html

self.currentHTML = [webView stringByEvaluatingJavaScriptFromString:lJs]

}

当我们遇到后台返回的是一串html'字符串,这个字符串中包含的有imgURL标签和文字,而需要是把文字和图片分别展示出来, 这个时候就需要先把里面的图片url提取出来,然后在使用imageView展示。现在问题的关键是如何把所有的imgURL拿出来呢? 其实很简单, 一个正确的正则表达式 <(img|IMG)(.*?)(/>|></img>|>) 即可实现我们要的效果

顺便附上一个移除html标签的方法


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

原文地址: https://outofmemory.cn/zaji/5896106.html

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

发表评论

登录后才能评论

评论列表(0条)

保存