如何在WKWebview中获取用于子帧的innerHTML

时间:2019-04-17 09:49:34

标签: ios objective-c wkwebview innerhtml

我正在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代码?

谢谢。

0 个答案:

没有答案