//加载完成
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
//注入js 遍历img标签添加点击事件:跳转至自定义链接(包含图片src)
//由于需求没有点击某个图片 侧滑查看所有图片(如有for循环结束时return objs.length;)
static NSString * const jsGetImages =
@"function getImages(){\
var objs = document.getElementsByTagName(\"img\");\
for(var i=0;i<objs.length;i++){\
objs[i].onclick=function(){\
document.location=\"myweb:imageClick:\"+this.src;\
};\
};\
};";
//调用自定义js
[webView evaluateJavaScript:jsGetImages completionHandler:^(id _Nullable result, NSError * _Nullable error) {
NSLog(@"%@",result);
}];
}
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
//捕获跳转链接
NSURL *URL = navigationAction.request.URL;
NSString *str = [NSString stringWithFormat:@"%@",URL];
if ([str containsString:@"myweb:imageClick:"]) {
//查看大图
decisionHandler(WKNavigationActionPolicyCancel); // 必须实现 不加载
……
}else {
decisionHandler(WKNavigationActionPolicyAllow); // 必须实现 加载
}
}
借鉴文章:https://blog.csdn.net/Zhi_Sheng/article/details/53158268
网友评论