UIWebView時(shí)獲取網(wǎng)頁(yè)標(biāo)題是在網(wǎng)頁(yè)加載成功后執(zhí)行"document.title"js代碼來(lái)獲取標(biāo)題,WKWebView當(dāng)然也可以通過(guò)此方法獲取,但有時(shí)在加載成功后H5業(yè)務(wù)修改標(biāo)題則不能實(shí)時(shí)獲取新的標(biāo)題
解決方案如下:
//添加監(jiān)聽(tīng)
[self.wkwebView addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:NULL];
// 根據(jù)監(jiān)聽(tīng) 實(shí)時(shí)修改title
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary<NSString *,id> *)change
context:(void *)context
{
if ([keyPath isEqualToString:@"title"]) {
if (object == self.webView)
{
self.title = self.webView.title;
}
else {
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
}
}
//移除監(jiān)聽(tīng)
- (void)dealloc{
[webView removeObserver:self forKeyPath:@"title" context:nil];
}