[Javascript] 'document.body.scrollHeight;'를 사용하여 UIWebView 콘텐츠 동적 높이 계산 iOS 10에서 더 큰 가치를 반환합니다.


Answers

저는 WebView의 크기를 올바르게 조정하기 위해 많은 노력을 기울였습니다.

document.body.scrollHeight를 평가하기 전에 한 단계 더 추가하십시오.

이 같은:

-(void) webViewDidFinishLoad:(UIWebView *)webView {
    if[[webView stringByEvaluatingJavaScriptFromString:@"document.readyState"] isEqualToString:@"complete"]){
webViewHeight = [[WebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
//resize logic
}

신속하고 WKWebView에 대한 코드를 작성하고 있지만 기본적으로 같은 것입니다. 요점은 scrollHeight (또는 offsetHeight -이 경우 차이를 파악할 수 없음)를 잡는 것입니다. 그 순간은 document.readyState 이후 일뿐입니다.

희망이 당신을 도울 것입니다.

Question

Objective C를 사용하는 응용 프로그램에서 UIWebView 형식으로 내용을 표시하기 위해 UIWebView 를 사용하고 있습니다. UIWebView 대리자 메서드에서 아래 코드를 사용하고 있습니다. webViewDidFinishLoad

NSUInteger contentHeight = [[aWebView stringByEvaluatingJavaScriptFromString : [NSString stringWithFormat : @ "document.body.scrollHeight;"]] intValue];

webview 콘텐츠 높이를 계산하기 위해 iOS8 , iOS9iOS11 에서는 제대로 작동하지만 iOS10 iPhone 모바일에서는 콘텐츠 높이가 실제 콘텐츠 값보다 훨씬 더 높습니다. 이 때문에 화면의 내 웹보기 하단에 여백이 추가로 생깁니다.

모든 솔루션을 시도했지만 iOS 10에서만 잘못된 콘텐츠 높이가 같아졌습니다.이 문제를 해결할 수 있도록 도와주세요. 미리 감사드립니다!