iOS 混合开发 —— WebView 问题技巧

1、图片太大

- (void)webViewDidFinishLoad:(UIWebView *)webView {
  NSString *js = @"function imgAutoFit() { 
     var imgs = document.getElementsByTagName('img'); 
     for (var i = 0; i < imgs.length; ++i) {
        var img = imgs[i];   
        img.style.maxWidth = %f;   
     } 
  }";
  js = [NSString stringWithFormat:js, [UIScreen mainScreen].bounds.size.width - 20];
  
  [webView stringByEvaluatingJavaScriptFromString:js];
  [webView stringByEvaluatingJavaScriptFromString:@"imgAutoFit()"];
}

  

2、内容高度

通过JS来获取高度:document.body.offsetHeight;

#pragma mark - UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView {
  CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue];
  if (self.webViewHeight != height && self.count <= 3) {
    self.webViewHeight = height;
    self.count++;
    
    [self updateUI];
  }
}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
  self.webViewHeight = webView.scrollView.contentSize.height;
  return YES;
}

  

github地址: https://github.com/lc081200/hybirdApp 

原文地址:https://www.cnblogs.com/saytome/p/7141279.html