今天项目上一处简单的UIWebView加载的HTML页面被产品经理提出了一个问题,需要该页面通过捏合手势控制页面放大缩小。下面是实现此功能的代码
设置UIWebView
myWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
myWebView.scalesPageToFit=YES;
myWebView.multipleTouchEnabled=YES;
myWebView.userInteractionEnabled=YES;
不过设置了这几个属性之后发现放大的倍数不能达到预期要求,经过一番查找发现是因为HTML中meta没引用meta的关系.
最后在 - (void)webViewDidFinishLoad:(UIWebView *)webView 方法中注入了段JS代码.
代码示例
NSString *meta = [NSString stringWithFormat:@"var meta = document.createElement('meta');meta.content='width=device-width,initial-scale=1.0,minimum-scale=.5,maximum-scale=3';meta.name='viewport';document.getElementsByTagName('head')[0].appendChild(meta);"];
[myWebView stringByEvaluatingJavaScriptFromString:meta];
完美解决问题💯
网友评论