UIWebView scalesPageToFit不会缩放页面

时间:2012-02-24 16:41:25

标签: iphone uiwebview

我有一个UIWebView,尽管scalePageToFit设置为YES,但不会执行任何此类缩放操作:网页开始放大并且需要取消操作以获取整个页面上的内容。

什么可以阻止UIWebView :: scalesPageToFit被尊重?

3 个答案:

答案 0 :(得分:3)

您可以通过JavaScript注入视口元素。

在此处查找viewport元标记:Safari Meta Tags

<meta name="viewport" content="width=320, initial-scale=2.3, user-scalable=no">

答案 1 :(得分:1)

在项目中创建名为changePageWidth.js的文件:

function changePageWidth(width) {
  var element = document.createElement('meta');
  element.name = "viewport";
  element.content = "width=" + width;
  var head = document.getElementsByTagName('head')[0];
  head.appendChild(element);
}

然后在UIWebView的委托的webViewDidFinishLoad中添加此代码:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"changePageWidth" ofType:@"js"];
    NSString *jsCode = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    [webView stringByEvaluatingJavaScriptFromString:jsCode];
    NSString *jsCall = [NSString stringWithFormat:@"changePageWidth(%d)", webView.frame.size.width];
    [webView stringByEvaluatingJavaScriptFromString:jsCall];
}

答案 2 :(得分:0)

可能是您可以使用javascript来调整浏览器的大小

NSString *jsCommand = [NSString stringWithFormat:@"document.body.style.zoom = 1.5;"];
webLookupView stringByEvaluatingJavaScriptFromString:jsCommand];