碰到个webview页面突然被放大了,查看html源码发现:
<meta name="viewport" content="initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no">
所以想到了对html进行js注入
WKUserScriptInjectionTimeAtDocumentStart
: 注入时机为document的元素生成以后,其余内容load以前.
WKUserScriptInjectionTimeAtDocumentEnd
: 注入时机为document所有load完成,任意子资源load完成以前.
- (WKWebView *)webView
{
if (!_webView) {
NSString *jScript = @"var script = document.createElement('meta');script.name = 'viewport';script.content='width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no';document.getElementsByTagName('head')[0].appendChild(script);";
//注意修改meta的js注入一定要选WKUserScriptInjectionTimeAtDocumentStart,否则不生效
WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:YES];
WKUserContentController * wkUController = [[WKUserContentController alloc] init];
[wkUController addUserScript:wkUScript];
WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
wkWebConfig.userContentController= wkUController;
_webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0 , 375, 812) configuration:wkWebConfig];
_webView.backgroundColor = [UIColor whiteColor];
_webView.navigationDelegate = self;
_webView.UIDelegate = self;
}
return _webView;
}
网友评论