2012-07-03 36 views
3

我在iOS應用程序的UIPopoverController中顯示UIWebView。UIPopover中的UIWebView - 報告大小

iPad報告它的窗口大小爲980x1532。因此,當我加載一個外部頁面時,它加載並渲染980像素寬。

我打這個webview的外部網站,所以我不能修改任何代碼從服務器。

是否有方法設置它,以便iPad UIWebView將報告彈出窗口的大小(320x480)?

+0

爲什麼你需要一個UIWebView到大小報告?你是否試圖強制popover達到這個尺寸? –

+0

正確。該網站具有響應js/css,並且如果它在320x480窗口中呈現,對我的用戶來說會更好。 –

+0

然後,您應該只需要在創建時設置彈出窗口大小,而不是依靠Web視圖來完成此操作。 –

回答

14

問題可能出現在HTML中。該頁面具有content =「width = device-width」集合,它將uiWebView內容大小設置爲設備大小與視圖大小。

結帳第二這個問題的答案displaying Wiki mobile page in UIWebView within UIPopoverController

它固定我的問題的代碼如下

- (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; 

}

+0

謝謝 - 作品! –

+0

太棒了!我想知道你是怎麼想出這個解決方案的。 –

+1

很多很多很多的谷歌搜索和嘗試的東西:D我希望這個答案被接受:) –