我的一个 View Controller 中嵌入了一个 Web View 。它的矩形为 600x800。似乎当我发出 url 请求时,它告诉网络服务器它的宽度是 768px,这是整个 ipad 纵向的宽度。
我们在 HTML header 中设置了 width=device-width,因此它返回了一个 768x#### 页面,并导致 Web View 水平滚动,因为我的 Web View 的矩形 < 768。
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
我如何设置此 webview,以便它向 Web 服务器报告正确(较小)的宽度?
更新
我确实发现一些代码集设置了 webViewDidFinishLoad 中 HTML 的宽度,它确实有效,但是有更好的方法吗?看起来像是黑客攻击。
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];
谢谢
最佳答案
跳过在元标记中指定宽度值。
<meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
关于objective-c - 报告小于屏幕的 Web View 的设备宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367487/