本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.计算webView的内容高度
``
- (void)viewDidLoad {
[self.webView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];//要想好代码的时机,要在webView初始化后
}
- (void)dealloc {
[self.webView.scrollView removeObserver:self forKeyPath:@"contentSize" context:nil];
}
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if (object == self.webView.scrollView && [keyPath isEqual:@"contentSize"]) {
// we are here because the contentSize of the WebView's scrollview changed.
UIScrollView *scrollView = self.webView.scrollView;
NSLog(@"New contentSize: %f x %f", scrollView.contentSize.width, scrollView.contentSize.height);
self.webView.height = scrollView.contentSize.height; //自适应高度
}
}
\
2.通过JS修改iOS客户端
2.1 .h
``
#import <WebKit/WebKit.h>
@interface ContenWebView : WKWebView
@property (nonatomic,copy) void(^finishedHandler)();
@end
2.2 .m
``
#import "ContenWebView.h"
@interface ContenWebView ()<WKNavigationDelegate>
@end
@implementation ContenWebView
-(instancetype)initWithFrame:(CGRect)frame{
if (self == [super initWithFrame:frame]) {
self.scrollView.scrollEnabled = false;
self.navigationDelegate = self;
}
return self;
}
// 页面开始加载时调用
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
[SVProgressHUD show];
}
// 当内容开始返回时调用
- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation{
}
// 页面加载完成之后调用
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
[SVProgressHUD dismiss];
//修改字体大小 300%
[ webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '250%'" completionHandler:nil];
//修改字体颜色 #9098b8
// [ webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= '#9098b8'" completionHandler:nil];
if (self.finishedHandler) {
self.finishedHandler();
}
}
// 页面加载失败时调用
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation{
NSLog(@"webView炸了");
}
@end