WKWebview点击图片查看大图

WKWebview点击看大图
废话不说直接上代码,用运行时解决这个问题

#import <objc/runtime.h>
- (void)setMethod:(NSArray *)imgUrlArray {
    objc_setAssociatedObject(self, &imgUrlArrayKey, imgUrlArray, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

- (NSArray *)getImgUrlArray {
    return objc_getAssociatedObject(self, &imgUrlArrayKey);
}

- (NSArray *)getImageUrlByJS:(WKWebView *)wkWebView {
    //js方法遍历图片添加点击事件返回图片个数 这个看你咋改
    //document.getElementById(\"content\").getElementsByTagName(\"img\");\
    //document.getElementsByTagName(\"img\");\
    
    
    
    static  NSString * const jsGetImages =
    @"function getImages(){\
    var objs = document.getElementById(\"content\").getElementsByTagName(\"img\");\
    var imgUrlStr='';\
    for(var i=0;i<objs.length;i++){\
    if(i==0){\
    imgUrlStr=objs[i].src;\
    }else{\
    imgUrlStr+='#'+objs[i].src;\
    }\
    objs[i].onclick=function(){\
    document.location=\"myweb:imageClick:\"+this.src;\
    };\
    };\
    return imgUrlStr;\
    };";
    
    //用js获取全部图片
    [wkWebView evaluateJavaScript:jsGetImages completionHandler:nil];
    
    NSString *js2 = @"getImages()";
    __block NSArray *array = [NSArray array];
    [wkWebView evaluateJavaScript:js2 completionHandler:^(id Result, NSError * error) {
        NSString *resurlt = [NSString stringWithFormat:@"%@",Result];
        if([resurlt hasPrefix:@"#"]){
            resurlt = [resurlt substringFromIndex:1];
        }
        array = [resurlt componentsSeparatedByString:@"#"];
        [wkWebView setMethod:array];
    }];
    
    return array;
}
- (void)showBigImage:(NSURLRequest *)request
                show:(UIViewController *)handleVC{
    NSString *str = request.URL.absoluteString;
    if ([str hasPrefix:@"myweb:imageClick:"]) {
        NSString *imageUrl = [str substringFromIndex:@"myweb:imageClick:".length];
        NSArray *imgUrlArr = [self getImgUrlArray];
        NSInteger index = 0;
        for (NSInteger i = 0; i < [imgUrlArr count]; i++) {
            if([imageUrl isEqualToString:imgUrlArr[i]]){
                index = i;
                break;
            }
        }
//这个是图片的数组  [self getImgUrlArray]
    }
}

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,418评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,970评论 25 709
  • 身边胖妈妈很多,不少都叫喊着要减肥,无奈要么管不住嘴,要么迈不开腿,真正减肥成功的寥寥无几。 莉是一个。 莉年轻的...
    56ef20d19ade阅读 3,619评论 0 3
  • 今天我们继续跟随着崔教授的脚步,一起走进这本《有效教学》的最后一单元:怎么教地更好。 这单元有些理论挺难理解的,起...
    酒泉教研室王乾祥阅读 1,697评论 0 0
  • 相比于商圈的嘈杂,秋末早上的静湖显得安静惬意。湖边的长凳上,闲闲散散地坐着十来个人。低头看手机,念念有词的。捧着书...
    胡桉阅读 3,480评论 1 1

友情链接更多精彩内容