【发布时间】:2014-07-25 15:47:36
【问题描述】:
我有一个 iPad 应用程序,我想在我的视图控制器的分隔空间中显示 UIWebView。我将宽度设置为 320 像素,就像 iPhone 一样,并且希望内容能够准确地呈现在 iPhone 上的样子。但是,我加载的任何页面仍会以 iPad 的完整尺寸呈现。
我尝试通过 NSUserDefaults 设置用户代理,虽然这对第一页有帮助,但它 1.)点击链接后不起作用,如图1 2.) 与在 iPhone Safari 浏览器上加载 google 相比,呈现 google 之类的网站略有不同。
NSString* userAgent = @"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X)";
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent" : userAgent}];
我已尝试将缩放页面设置为适合 UIWebView.scalesPageToFit,但这只会在窗口中缩放 iPad 版本的页面,导致内容难以辨认。
我还尝试在加载后使用 Javascript 来修复页面,但这也不起作用。与在 iPhone Safari 浏览器上加载 google 相比,它呈现 google 之类的网站略有不同。
- (void)webViewDidFinishLoad:(UIWebView*)webView {
if(webView.frame.size.width < webView.window.frame.size.width) {
// width=device-width results in a wrong viewport dimension for webpages displayed in a popover
NSString *jsCmd = @"var viewport = document.querySelector('meta[name=viewport]');";
jsCmd = [jsCmd stringByAppendingFormat:@"viewport.setAttribute('content', 'width=%i, initial-scale=1.0, user-scalable=1');", (NSUInteger)webView.frame.size.width];
[webView stringByEvaluatingJavaScriptFromString:jsCmd];
}
// stop network indicator
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
而不是像我的 iPhone 5S 上这样渲染:
任何有关如何在 iPad 中实现 iPhone 风格的 UIWebView 的帮助将不胜感激!谢谢!
编辑:
我尝试将缩放系数设置为仅 iPad 的宽度,但它只会使整个 iPad 版本的页面适合宽度,并且内容难以辨认。仍然不像上面的 iPhone。
- (void)webViewDidFinishLoad:(UIWebView *)webView {
CGSize contentSize = webView.scrollView.contentSize;
CGSize viewSize = webView.bounds.size;
float rw = viewSize.width / contentSize.width;
webView.scrollView.minimumZoomScale = rw;
webView.scrollView.maximumZoomScale = rw;
webView.scrollView.zoomScale = rw;
}
【问题讨论】: