0%

iOS WKWebView适配iOS8支持网页宽度自适应

iOS在iOS8推出基于WebKit的WKWebView显示网页、富文本内容,相比UIWebView在速度、内容消耗上有了很大的提升,但WKWebView也埋下了不少坑,最近碰到一个iOS8独享bug,iOS8上,网页宽度自适应失效,内容强制显示屏幕宽度,而不是WKWebView的宽度,主要是标签的支持问题,在此记录下解决方案,希望iOS8不再是开发者的痛;(ps:iOS12都快出了,iOS8还想走多远 ==)

1
2
3
4
5
6
NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";

WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
WKUserContentController *wkUController = [[WKUserContentController alloc] init];
wkUController addUserScript:wkUScript];
Configuration.userContentController = wkUController;