由于后臺返回的HTML代碼直接顯示在手機上不好看啦桌,所以只能添加樣式來適配屏幕圃庭,下面的方法可以調(diào)節(jié)文字和圖片大小來適配屏幕鹰溜。
- (NSString *)reSizeImageWithHTML:(NSString *)html {
return [NSString stringWithFormat:@"<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'><meta name='apple-mobile-web-app-capable' content='yes'><meta name='apple-mobile-web-app-status-bar-style' content='black'><meta name='format-detection' content='telephone=no'><style type='text/css'>img{width:%fpx}</style>%@", SCREEN_WIDTH - 20, html];
}
遵循WKNavigationDelegate序芦,在WKWebView加載完數(shù)據(jù)后實現(xiàn)某些操作。比如要調(diào)整scrollow內(nèi)容高度
- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation{
__block typeof(self) weakSelf = self;
[webView evaluateJavaScript:@"document.body.scrollHeight" completionHandler:^(id _Nullable value, NSError * _Nullable error) {
CGFloat height = [value floatValue];
CGRect rect = weakSelf.webView.frame;
rect.size.height = height;
weakSelf.webView.frame = rect;
weakSelf.backgroundView.contentSize = CGSizeMake(0, CGRectGetMaxY(self.webView.frame));
}];
}
同時要求webview不能縮放,內(nèi)容不能在webview內(nèi)上下左右滾動鲤遥,就要設置
_webView.scrollView.delegate = self;
_webView.scrollView.scrollEnabled = NO;
這樣以來沐寺,在離開此頁面時程序就會崩潰。
這時需要在頁面銷毀時做如下操作
- (void)dealloc
{
self.webView.scrollView.delegate = nil;
}
我是在viewDidLoad里add了webview設置代理
就在dealloc里將代理置空盖奈。
如果在viewWillAppear里設置混坞,請在disAppear里置空。
didAppear同理钢坦。