有的網頁中會使用"<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">"這個標籤來設置網頁的寬度,不過帶來的問題是,若是展現這個webview的寬度不等於設備的寬度的時候,就會出現網頁內容過寬左右能夠滑動或者網頁左右內容沒有佔滿。找了一下,有兩個解決方法:javascript
1. 利用webview中的scrollview的zoom特性,這個方法會讓網頁內容變小html
- (void)webViewDidFinishLoad:(UIWebView *)theWebView { CGSize contentSize = theWebView.scrollView.contentSize; CGSize viewSize = self.view.bounds.size; float rw = viewSize.width / contentSize.width; theWebView.scrollView.minimumZoomScale = rw; theWebView.scrollView.maximumZoomScale = rw; theWebView.scrollView.zoomScale = rw; }
2. 第二個方法,在客戶端使用js重寫meta標籤,這個也是在webview的delegate的webViewDidFinished回調中調用;咱們使用的這種方法來操做,內容不會變小java
javascript = [NSString stringWithFormat:@"var viewPortTag=document.createElement('meta'); \ viewPortTag.id='viewport'; \ viewPortTag.name = 'viewport'; \ viewPortTag.content = 'width=%d; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;'; \ document.getElementsByTagName('head')[0].appendChild(viewPortTag);" , (int)authWebView.bounds.size.width]; [authWebView stringByEvaluatingJavaScriptFromString:javascript];
參考:web
1. http://stackoverflow.com/questions/10666484/html-content-fit-in-uiwebview-without-zooming-out app
3:http://m.blog.csdn.NET/blog/lihei12345/43565859ui