WKWebView HTML 로드, 화면 적응 문제
첫 번째 방법: 안의 너비 값을 직접 바꾸지만 이 방법은 폐단이 있다.만일 백그라운드에서 우리에게 준 html 코드의 폭이 변할 수 있다면 이것은 쓸모가 없다
// html
NSString *heder = @"html ";
// html
NSString *htmlString = [heder stringByReplacingOccurrencesOfString:@"300" withString:[NSString stringWithFormat:@"%.f", ]];
[self.webView loadHTMLString:heder baseURL:nil];
두 번째 방법.이 방법은 내가 인터넷에서 찾았지만 약간의 변경을 했다.다른 사람을 속이는 코드를 스스로 해결했다고 해도 아무런 효과가 없다.(제가 직접 테스트해 봤는데 효과가 없어요. 많은 동포들이 똑같은지 모르겠어요.그럼 어떡하지? 사실은 간단해. 바로 js 코드를 바꾸는 거야.width=device-width를 width=100%로 바꾸면 되겠네요.그래서 js 코드를 못 알아보는 것도 힘들어요.
- (WKWebView *)webView {
if (!_webView) {
_webView = [[WKWebView alloc] init];
//
NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";
WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
WKUserContentController *wkUController = [[WKUserContentController alloc] init];
[wkUController addUserScript:wkUScript];
WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
wkWebConfig.userContentController = wkUController;
_webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:wkWebConfig];
[self.view addSubview:_webView];
_webView.navigationDelegate = self;
}
return _webView;
그렇다면 고도에 적응하려면 먼저 대리에 따라야 한다
_webView.navigationDelegate = self;
그리고 그의 대리 방법을 집행한다
#pragma mark —— WKNavigationDelegate
-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
[webView evaluateJavaScript:@"document.body.scrollHeight;" completionHandler:^(id _Nullable any, NSError * _Nullable error) {
NSString *heightStr = [NSString stringWithFormat:@"%@",any];
[self.webView setHeight:heightStr.intValue];
[self.tableView reloadData];
}];
}
https://www.jianshu.com/p/20cea397cd11
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.