UIWebView缩放

时间:2012-03-21 06:43:13

标签: ios uiwebview

我为UIWebView设置了“scalesPageToFit”属性为YES。 它得到缩放,但当页面加载时,内容是微小的字体,无需捏就无法读取。我们可以将缩放比例设置为默认值吗?

1 个答案:

答案 0 :(得分:3)

这更多是关于您正在加载的网站,然后是UIWebView本身......

如果您对显示的HTML有控制权,只需将<meta name="viewport" content="width=device-width;initial-scale=1.0">放入<head>

如果没有:您可以将JavaScript注入UIWebView并执行它,因此可以使用一个小代码片段轻松插入元标记:

NSString *result = [webView stringByEvaluatingJavaScriptFromString:
  [NSString stringWithFormat:@"var result = '';"
  "var viewport = null;"
  "var content = null;"
  "var document_head = document.getElementsByTagName( 'head' )[0];"
  "var child = document_head.firstChild;"
  "while ( child )"
  "{"
  " if ( null == viewport && child.nodeType == 1 && child.nodeName == 'META' && child.getAttribute( 'name' ) == 'viewport' )"
  "   {"
  "     viewport = child;"
  "     viewport.setAttribute( 'content' , 'width=device-width;initial-scale=1.0' );"
  "     result = 'fixed meta tag';"
  " }"
  " child = child.nextSibling;"
  "}"
  "if (null == viewport)"
  "{"
  " var meta = document.createElement( 'meta' );"
  " meta.setAttribute( 'name' , 'viewport' );"
  " meta.setAttribute( 'content' , 'width=device-width;initial-scale=1.0' );"
  " document_head.appendChild( meta );"
  " result = 'added meta tag';"
  "}"
  ]
];

请注意,该代码段会终止HTML代码作者所做的视口设置......所以您可能会得到奇怪的结果。