Dar*_*ren 5 uiwebview ios ios7
我正在尝试将响应式网页加载到UIWebview中,使用我的UIViewController的viewDidLoad方法中的以下代码:
NSURL *url = [NSURL URLWithString:self.webViewURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)
它不是根据UIWebView的帧大小加载网页的方式,而是将UIWebView的UIScrollView contentSize设置为一些看似任意的大小(大于我的Web视图框架大小)并加载响应式网页.对于那个大小的框架.
如果我尝试加载我在Safari中使用的网址,它会根据浏览器窗口大小正确重新排列.
我已经尝试将scalesPageToFit属性设置为YES,虽然我实际上并不想缩放页面,但让它的行为与Web视图框架相对应.
有没有人对于发生了什么以及如何解决它有任何想法?
Dar*_*ren 27
我弄清楚发生了什么.我在iPad上的UIWebView宽度小于设备宽度.网页使用设备宽度来确定页面的宽度(此代码位于<head>元素中):
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)
我能够使用我在另一个问题中找到的东西解决问题(/sf/answers/917967431/):
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ", (int)webView.frame.size.width]];
}
Run Code Online (Sandbox Code Playgroud)
您可以通过将UIWebViewproperty 设置scalesPageToFit为TRUE 来实现此目的.
webView.scalesPageToFit = TRUE;
这有助于我使用内部响应式网页UIWebView.