我正在WKWebview上工作,因为我正在使用此javascript检查内部HTML代码。
-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
NSString *strBlockKeyWord = @"document.body.innerHTML";
[webView evaluateJavaScript:strBlockKeyWord completionHandler:^(NSString* html, NSError * _Nullable error) {
NSLog(@"HTML code of page is .....%@",html);
}];
}
}
当大型机在webview中加载时工作正常,当在加载的网站中加载任何子帧时不调用 didFinishNavigation ,当我们在大型机内部执行任何操作时却正确加载了子帧内容,但未调用 didFinishNavigation 回调,因此,我没有得到新的加载页面的HTML代码。
我还添加了Observer,以使进度看起来像这样
[self.wkWebView addObserver:self forKeyPath:NSStringFromSelector(@selector(estimatedProgress)) options:NSKeyValueObservingOptionNew context:NULL];
在这种情况下,观察者委托在主机加载时在方法下方调用,当我们在WKWebview中执行某些动作和子帧加载时,也无法在观察者委托方法下调用该方法。
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqualToString:NSStringFromSelector(@selector(estimatedProgress))]) {
}
}
您能帮我吗,在主机上加载子帧时如何获取我的Webview HTML代码?
谢谢。