在 Objective C 中解析 Open Graph 元 properties/tags
Parsing Open Graph meta properties/tags in ObjectiveC
我在 objectiveC 中有一个 iOS 应用程序,它使用 UIWebView 加载网页。我想解析该网页的 Open Graph 元标记 -
<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\")"
谢谢,
您是否尝试过在元素上使用 getAttribute DOM 方法?类似于:
metaFields[i].getAttribute('property')
我在 objectiveC 中有一个 iOS 应用程序,它使用 UIWebView 加载网页。我想解析该网页的 Open Graph 元标记 -
<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\")"
谢谢,
您是否尝试过在元素上使用 getAttribute DOM 方法?类似于:
metaFields[i].getAttribute('property')