2015-06-19 8 views
1

У меня есть приложение iOS в объекте C, которое использует UIWebView для загрузки веб-страницы. Я хочу, чтобы разобрать мета-теги Open Graph этой веб-страницы -Анализ графических свойств метатегов/Object в ObjectiveC

<meta property="og:locale" content="en_US" /> 
<meta property="og:title" content="My Title" /> 
<meta property="og:site_name" content="My Content" /> 

С помощью следующего кода я могу перебирать все мета-теги и получить их содержание, но как я могу проверить мета свойства Я: увлекающийся?

NSString *resultStr = [self.viewWeb stringByEvaluatingJavaScriptFromString: 
         @"(function(){" 
         "var i, metaFields = document.getElementsByTagName(\"meta\"), result = [];" 
         "for (i = 0; i< metaFields.length; i++) {" 
           "result.push({\"content\": metaFields[i].content});" 
         "}" 
         "return JSON.stringify(result);" 
         "})();" 
         ]; 
NSArray *result = [NSJSONSerialization JSONObjectWithData:[resultStr dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]; 
NSLog(@"result: %@", result); 

Например, если меня интересует только «og: site_name», как я могу его проверить? Я пробовал «metaFields [i] .property», но кажется, что свойства недоступны для этого пути. Я хочу сделать что-то вроде -

"if (metaFields[i].property === \"og:site_name\")" 

Спасибо,

+0

Не уверен, что это сработает в вашей ситуации, но попробовали ли вы разобрать запрос? то есть: - (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest: (NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType { NSLog (@ "REQUEST:% @", [request valueForHTTPHeaderField: @ "xyzHeader"]); } –

+0

Я не получаю открытые свойства графика в метаданных. Я попытался получить его через UIWebView и WKWebView, но не повезло. Существуют ли какие-либо дополнительные конфигурации, которые необходимо задать в URL-адресе запроса? – iAkki

ответ

1

Вы пробовали использовать метод GetAttribute DOM на элементе? Что-то вроде:

metaFields[i].getAttribute('property') 
+0

Спасибо! вот и все! –

+0

Как это работает для WKWebView? – Sukeshj

+0

Также работает для WKWebView, но ему нужно будет использовать: - (void) оценитьJavaScript: (NSString *) javaScriptString completeHandler: (void (^) (id, ошибка NSError *)) completeHandler; – Alex

Смежные вопросы