Как получить innerHTML для подкадра в WKWebview - PullRequest
1 голос
/ 17 апреля 2019

Я работаю над WKWebview, проверяя внутренний HTML-код, используя этот javascript.

-(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);
            }];
        }
}

Работает нормально, когда мэйнфрейм загружается в веб-просмотре, didFinishNavigation не вызывается, когда мы загружаем любой субфрейм в загруженный веб-сайт, когда мы выполняем какие-либо действия внутри мэйнфрейма, когда он правильно загружает содержимое субкадра, но не вызывается didFinishNavigation обратный вызов, поэтому из-за этого я не получаю HTML-код новой страницы загрузки.

Я также добавил Наблюдатель за прогрессом, похожим на этот

[self.wkWebView addObserver:self forKeyPath:NSStringFromSelector(@selector(estimatedProgress)) options:NSKeyValueObservingOptionNew context:NULL];

В этом случае вызов делегата Observer ниже метода при загрузке основного фрейма, когда мы выполняем какое-то действие и загрузку субкадра в WKWebview, когда в этот раз также не выполняется вызов ниже метода делегата Observer.

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

    if ([keyPath isEqualToString:NSStringFromSelector(@selector(estimatedProgress))]) {
     }
}

Не могли бы вы мне помочь, Как получить HTML-код моего веб-просмотра при загрузке субкадра в мэйнфрейм?

Заранее спасибо.

...