3

我在 iOS 应用程序的 UIPopoverController 中显示 UIWebView。

iPad 报告其窗口大小为 980x1532。因此,当我加载外部页面时,它会加载并呈现 980 像素宽。

我在这个 webview 中访问了一个外部网站,所以我不能从服务器修改任何代码。

有没有办法设置它,以便 iPad UIWebView 将报告弹出框的大小(320x480)?

4

1 回答 1

14

问题可能出在 HTML 中。该页面设置了 content="width=device-width" ,它将 uiWebView 内容大小设置为设备大小与视图大小。

结帐此问题的第二个答案,在 UIPopoverController 内的 UIWebView 中显示 Wiki 移动页面

它解决了我的问题代码如下

- (void)webViewDidFinishLoad:(UIWebView *)aWebView {
if(aWebView.frame.size.width < aWebView.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)aWebView.frame.size.width];
    [aWebView stringByEvaluatingJavaScriptFromString:jsCmd];
}
// stop network indicator
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

}

于 2013-01-11T21:39:09.997 回答