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]];

}

'''

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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

友情链接更多精彩内容