迅速-从URL获取OpenGraph元标记

时间:2018-08-20 10:35:29

标签: ios swift opengraph

我正在尝试从URL中获取og(OpenGraph)标签并在应用中显示。我可以为大多数网站正确获得标签,但对于某些网站却没有。

例如This URL

当我在浏览器中渲染并检查它时,它会向我显示meta标签,但是当我尝试通过cURL获取html时,它将返回一个没有任何meta的html内容。但是,当我在Slack或FB中共享URL时,它将使用OG标签呈现预览。

我如何在iOS上做到这一点?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您共享的URL的问题在于该站点需要启用Javascript。

如果您没有启用Javascript,则只需返回一个基本页面,即您需要启用Javascript才能浏览该网站(因此,没有Open Graph标签)。

您的浏览器,Slack和Facebook执行Javascript,但cURL不执行。 iOS中的URLSession也不会。

在iOS中,唯一能够访问此类网站的HTML的方法是使用WKWebView呈现页面。

然后,在加载后,使用evaluateJavascript(_:completionHandler:)执行一些Javascript以获取OG标签。

对于使用iOS库的这些情况,这是唯一可行的解​​决方案。

Facebook,LinkedIn等的iOS客户端不在其iOS客户端上执行此操作。他们的iOS客户端调用其后端,传递要处理的URL,然后接收回预览。 Javascript是此后端过程的一部分。

周围有公共API可以帮助您完成相同的操作,例如:

https://opengraph.io