Доступ к метаданным из UIWebView - PullRequest
2 голосов
/ 11 августа 2011

Как получить доступ к метаданным страницы HTML, загруженной в UIWebView в iOS?

Ответы [ 3 ]

4 голосов
/ 11 августа 2011

Вы можете получить доступ к содержимому метатега,

NSString *graphURL = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('facebook_share')
[0].getAttribute('content')"];

, где вы можете изменить имя атрибута, объявленное в 'content'

1 голос
/ 11 августа 2011

Извлечь автора в

<html><head>
<meta name="Author" content="Bloody Mary">
</head><body></body></html>

оберните javascript в функцию, сохраните его как файл reportMeta.js и добавьте в свой проект.

  // file reportMeta.js
  function reportMeta(){
      alert(document.getElementsByName('author')[0].getAttribute('content'));
  }

Затем загрузите файл из webViewDidFinishLoad: и выполните его:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"reportMeta" ofType:@"js"];
    NSString *jsCode = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    [webView stringByEvaluatingJavaScriptFromString:jsCode];
    [webView stringByEvaluatingJavaScriptFromString:@"reportMeta()"];
}

Или, если ваш JS короткий, вы можете просто вставить его в Objective-C.

1 голос
/ 11 августа 2011

Внедряя вызовы JavaScript -

  var metas = document.getElementsByTagName('META');
  var i;
  for (i = 0; i < metas.length; i++)
  {
      ...
  }
...