WKWebview加载SVG显示不全,或者WKWebview加载html显示不全.要注入一段js代码
- (void)configUI{
CGFloat gap = 16;
// self.webview = [[WKWebView alloc] initWithFrame:CGRectMake(gap, 10,kUIScreenWidth - gap * 2 , 10)];
// 解决内存泄露问题
WKWebViewConfiguration*config = [[WKWebViewConfiguration alloc]init];
config.selectionGranularity = WKSelectionGranularityCharacter;
// 让网页内容自适应大小
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];
config.userContentController = wkUController;
// 创建WKWebView
self.webview = [[WKWebView alloc] initWithFrame:CGRectMake(gap, 10,kUIScreenWidth - gap * 2 , 10) configuration:config];
[self.contentView addSubview:self.webview];
self.webview.navigationDelegate = self;
}
- (void)configureCellWithStr:(NSString *)contentstr
{
//"<head><style>img{width:%f !important;height:auto}</style></head>
NSString *headerString = @"<header><meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no'><style>img{max-width:100%;}</style><style>video{max-width: 100%; width:auto; height:auto;}</style></header>";
[self.webview loadHTMLString:[headerString stringByAppendingString:self.htmlStr ? self.htmlStr : @""] baseURL:nil];
// [self.webview loadHTMLString:self.htmlStr baseURL:nil];
}