可以使用UIWebView的stringByEvaluatingJavaScriptFromString来实现UIWebView与HTML网页之间的交互
- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
WKWebView对应的方法是evaluateJavaScript
- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ _Nullable)(_Nullable id, NSError * _Nullable error))completionHandler;
常用方法:
- 获取页面的 url:
[webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
- 获取页面的 title:
[webview stringByEvaluatingJavaScriptFromString:@"document.title"];
- 获取页面的 HTML 内容:
[webview stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];
- 获取页面的 HTML 内容文本:
[webview stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
- 获取页面的 body 之间的 HTML 内容:
[webview stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];
- 获取页面的 body 之间的 HTML 内容文本:
[webview stringByEvaluatingJavaScriptFromString:@"document.body.innerText"];
- 获取页面内容高度:
[webview stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"];
- 获取meta的内容
示例HTML
<meta name="share_title" content="测试">
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName(\"share_title\")[0].content"];
或者
//适用iOS10以上
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('meta')['share_title']['content']"];