IOS开发如何在UITableView上添加UIWebview加载富文本,并且添加富文本中的图片点击功能

'''

  • (void)webViewDidFinishLoad:(UIWebView *)webView //网页加载完成的时候调用
    {
    //这里是js,主要目的实现对url的获取
    static  NSString * const jsGetImages =
    @"function getImages(){\
    var objs = document.getElementsByTagName(\"img\");\
    var imgScr = '';\
    for(var i=0;i<objs.length;i++){\
    imgScr = imgScr + objs[i].src + '+';\
    };\
    return imgScr;\
    };";
    //以上代码是将富文本中的图片添加上点击功能---下面的方法是将富文本中包含的图片地址全部存进数组,逗号分隔
    [webView stringByEvaluatingJavaScriptFromString:jsGetImages];//注入js方法
    NSString *urlResurlt = [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];
    self.imageUrl = [NSMutableArray arrayWithArray:[urlResurlt componentsSeparatedByString:@"+"]];
    if (self.imageUrl.count>0) {
        NSString *str=[NSString stringWithFormat:@"%@",self.imageUrl[self.imageUrl.count-1]];
        if ([str length]<10) {//最后一个图片地址长度小于10 证明是个不完整的图片一般正常的都超过10
            [self.imageUrl removeObjectAtIndex:self.imageUrl.count-1];
        }
    }
    
    NSLog(@"*-*-*-*-*-*%@",self.imageUrl);
    
    
    
    
    NSString *js = @"function addImgClickEvent() { \
    var imgs = document.getElementsByTagName('img'); \
    for (var i = 0; i < imgs.length; ++i) { \
    var img = imgs[i]; \
    img.onclick = function () { \
    window.location.href = 'xsq-image:' + this.src; \
    }; \
    } \
    }";
    // 注入JS代码
    [webView stringByEvaluatingJavaScriptFromString:js];
    // 执行所注入的JS代码
    [webView stringByEvaluatingJavaScriptFromString:@"addImgClickEvent();"];
    
    CGSize fittingSize = [webView sizeThatFits:CGSizeZero];//这个大小就是UIwebview加载完毕的实际大小
    NSLog(@"网页高度------:%f",fittingSize.height);
    _web.sd_layout.heightIs(fittingSize.height);
    
    
    //以下代码的功能是禁止webview滑动,这样的话,滑动tableview的时候就不会滑动webview了,就不会出现交互错误,如果webview不是加载在UITableview上得话就不用这段代码了
    for (id subview in webView.subviews)
    if ([[subview class] isSubclassOfClass: [UIScrollView class]])
    ((UIScrollView *)subview).bounces = NO;
    webView.scrollView.bounces = NO;
    
    
   // _web.userInteractionEnabled=NO;//这个可以关掉UIwebview的交互性,使其不可点击以及滑动,不过不到万不得已不要用

//底下这通知是我通知tabview刷新高度呢
[[NSNotificationCenter defaultCenter]postNotificationName:@"WebViewHeight" object:[NSString stringWithFormat:@"%f",fittingSize.height+10]];

}

'''

推荐阅读更多精彩内容

  • IOS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、...
    学无止境666阅读 44,024评论 5 53
  • OS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、速...
    知之未道阅读 1,184评论 0 4
  • //设置尺寸为屏幕尺寸的时候self.window = [[UIWindow alloc] initWithFra...
    LuckTime阅读 296评论 0 0
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 2,173评论 1 7
  • ――――――――――――――――写给剑门关 ――――――――――――创作与2016年2月7日 踏着青石板 我在哪...
    发霉的兔纸阅读 55评论 2 1