ios 获取html的高度,iOS Webview自适应实际内容高度的4种方法详解
时间: 2024-03-17 22:41:36 浏览: 219
iOS Webview自适应实际内容高度的4种方法详解
获取HTML的高度可以使用JavaScript代码来实现。具体步骤如下:
1. 在iOS项目中创建一个UIWebView对象,并将HTML代码加载到该对象中。
2. 在UIWebView对象的代理方法中,使用JavaScript代码获取HTML的高度。
下面是四种方法,可以根据具体情况选择使用哪种方法:
方法一:使用JavaScript代码获取HTML实际内容的高度
```
NSString *jsString = @"document.documentElement.scrollHeight";
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:jsString] floatValue];
```
方法二:使用JavaScript代码获取HTML实际内容的高度,并将高度传递给iOS端
```
NSString *jsString = @"window.webkit.messageHandlers.getHeight.postMessage(document.documentElement.scrollHeight)";
[webView evaluateJavaScript:jsString completionHandler:nil];
```
在iOS端,需要实现WKScriptMessageHandler协议的代理方法,从而接收传递过来的高度值。
方法三:使用JavaScript代码获取HTML实际内容的高度,并将高度赋值给HTML的body元素的高度属性
```
NSString *jsString = @"document.body.style.height = document.documentElement.scrollHeight + 'px'";
[webView evaluateJavaScript:jsString completionHandler:nil];
CGFloat height = webView.scrollView.contentSize.height;
```
方法四:使用JavaScript代码获取HTML实际内容的高度,并将高度赋值给HTML的body元素的高度属性,同时将高度传递给iOS端
```
NSString *jsString = @"document.body.style.height = document.documentElement.scrollHeight + 'px';";
jsString = [jsString stringByAppendingString:@"window.webkit.messageHandlers.getHeight.postMessage(document.documentElement.scrollHeight)"];
[webView evaluateJavaScript:jsString completionHandler:nil];
```
在iOS端,同样需要实现WKScriptMessageHandler协议的代理方法,从而接收传递过来的高度值。
阅读全文