objective-c - 报告小于屏幕的 Web View 的设备宽度

标签 objective-c

我的一个 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/

相关文章:

objective-c - 如何在 c++ lambda 调用中正确捕获 Obj-C block ?

播放视频后 iOS 7 状态栏消失

ios - iPhone/iPad 的唯一标识符除了 UUID/UDID?

ios - 如何将 int array[] 声明为 appDelegate 中的属性

ios - Error Domain=NSURLErrorDomain Code=-1003 “找不到具有指定主机名的服务器

iOS保持线程在后台运行

iphone - 使用 [UIColor colorWithPatternImage :]? 时如何更改图案相位

ios - 从 App Delegate 呈现 View Controller

objective-c - 缺少方法声明的上下文?

ios - 当 UITextView 只有单行时,如何调整 UITextView 的大小