如何获取UIWebView中显示的HTML页面的标题?

Tec*_*Zen 144 iphone objective-c uiwebview foundation ios

我需要从UIWebView中显示的HTML页面中提取title标签的内容.这样做最有力的方法是什么?

我知道我能做到:

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];
}
Run Code Online (Sandbox Code Playgroud)

但是,这仅在启用了javascript时才有效.

或者,我可以只扫描标题的HTML代码文本,但这感觉有点麻烦,如果页面的作者对他们的代码变得怪异,可能会很脆弱.如果是这样,那么在iPhone API中处理html文本的最佳方法是什么?

我觉得我已经忘记了一些明显的东西.有没有比这两种选择更好的方法?

更新:

以下是对这个问题的回答:UIWebView:你可以禁用Javascript吗?似乎没有办法在UIWebView中关闭Javascript.因此,上面的Javascript方法将始终有效.

Bri*_*ham 87

对于那些只是向下滚动找到答案的人:

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];
}
Run Code Online (Sandbox Code Playgroud)

这将始终有效,因为无法在UIWebView中关闭Javascript.


Daw*_*ong 6

WKWebView 有'title'属性,就这样做,

func webView(_ wv: WKWebView, didFinish navigation: WKNavigation!) {
    title = wv.title
}
Run Code Online (Sandbox Code Playgroud)

我认为UIWebView现在不合适。