美文网首页
iOS-WKWebView跳转获取url标题title的两种方式

iOS-WKWebView跳转获取url标题title的两种方式

作者: 等不来的期待 | 来源:发表于2021-08-25 09:51 被阅读0次

我们在做需求的时候,肯定避免不了跳转H5页面,多个页面需要获取web页面的标题title,这就牵扯出来两种方法:
1.我们常用的方法:WKWebView的代理方法:

  //执行JS方法获取导航栏标题
    [webView evaluateJavaScript:@"document.title" completionHandler:^(id _Nullable title, NSError * _Nullable error) {

        if (ValidStr(title)) {

            self.navigationItem.title = title;

        } else {

            self.navigationItem.title = @"";
        }

    }];

这种方法是最常用的,只要遵循代理就能实现。一般都可以获取到
2.在第一种方法获取不到title的时候,我们就暴力一点直接加KVO监听方法,用来获取webView的title,代码如下:

// 添加进度监听
[_wkWebView addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:NULL];

#pragma mark KVO 实现方法
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
    
    if ([keyPath isEqualToString:@"title"]) {
        
        if (object == self.wkWebView) {
            
            self.navigationItem.title = self.wkWebView.title;

        } else {
            
            [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
        }
    }
}

谢谢

相关文章

网友评论

      本文标题:iOS-WKWebView跳转获取url标题title的两种方式

      本文链接:https://www.haomeiwen.com/subject/iljsiltx.html