我正在尝试从URL中获取og(OpenGraph)标签并在应用中显示。我可以为大多数网站正确获得标签,但对于某些网站却没有。
例如This URL
当我在浏览器中渲染并检查它时,它会向我显示meta标签,但是当我尝试通过cURL获取html时,它将返回一个没有任何meta的html内容。但是,当我在Slack或FB中共享URL时,它将使用OG标签呈现预览。
我如何在iOS上做到这一点?
感谢您的帮助。
答案 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可以帮助您完成相同的操作,例如: