从网址中读取元标记,以便在ios中获取像facebook这样的图片

时间:2015-10-01 12:14:06

标签: ios objective-c iphone

当你在帖子中分享网址时,我想从网址中读取图片并在UIImageView中像Facebook或Twitter一样显示。

据我所知,我需要阅读元标记<meta property="og:image" content="" />,但我在iOS中找不到任何方法。

我想知道是否有办法,任何示例代码都将受到赞赏。

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

我使用了Fizu和SWXMLHash。 Fizu获取HTML文档的头部,而SWXMLHash提取og:image的元标记。

import UIKit
import Fuzi
import SWXMLHash

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        guard let url = NSURL(string: "http://www.foxnews.com/entertainment/2016/04/25/megyn-kelly-will-interview-donald-trump-on-fox-tv-special.html") else {
            print("Invalid URL!")
            return
        }
        guard let html = NSData(contentsOfURL: url) else {
            print("No data returned!")
            return
        }

        guard let htmlString = String(data: html, encoding: NSUTF8StringEncoding) else {
            print ("Invalid data!")
            return
        }

        do {
            let doc = try HTMLDocument(string: htmlString, encoding: NSUTF8StringEncoding)
            print(doc.head)  // gets <head> element

            guard let stringValue = doc.head?.description else {
                print("no string")
                return
            }

            let xml = SWXMLHash.parse(stringValue)

            let imageURL = try xml["head"]["meta"].withAttr("property", "og:image").element?.attributes["content"]
            print(imageURL)

        } catch let error {
            print(error)
        }
    }

}