版权所有,禁止匿名转载;禁止商业使用。
SDWebView组件 是针对WKWebView进行的深度封装、支持和H5交互、H5图片预览、包括调用js方法等。挺全面的!真的!
SDPhotoBrowserd组件 是一个图片浏览器,创建简单易用,
可以复制demo中的代码。
demo是使用SDWebView加载的图片页面,然后使用
SDPhotoBrowserd进行图片预览,磨砂的背景比普通黑色耐
看!需要用到WKWebView中图片预览的这个demo就在合适不过
了!
给我一颗星,照亮我的心。
demo下载
Demo中包含两个组件,SDWebView 和 SDPhotoBrowserd,demo中图片缓存用到了SDWebImage 框架,下载demo 后需要pod install 一下。
?一.支持H5页面图片预览 ? ?二.支持H5调用OC ?OC调用H5 ? ?三.更多!!!
//给webView添加监听title和进度条
[self.webView addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:nil];
[self.webView addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew context:nil];
//kvo监听进度条
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
if ([object isKindOfClass:[SDWebView class]]) {
if ([keyPath isEqualToString:@"estimatedProgress"]) {
CGFloat newprogress = [[change objectForKey:NSKeyValueChangeNewKey] doubleValue];
if (newprogress == 1) {
self.webView.progressView.hidden = YES;
[self.webView.progressView setProgress:0 animated:NO];
}else {
self.webView.progressView.hidden = NO;
[self.webView.progressView setProgress:newprogress animated:YES];
}
}
if ([keyPath isEqualToString:@"title"]) {
if (self.webView.title.length > 10) {
self.navigationItem.title = [self.webView.title substringToIndex:14];
} else {
self.navigationItem.title = self.webView.title;
}
}
} else {
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
}
//移除监听
[self.webView removeObserver:self forKeyPath:@"estimatedProgress"];
[self.webView removeObserver:self forKeyPath:@"title"];
//js调OC时,需要让前端人员写如下js代码