swift - 从 URL 获取 OpenGraph 元标记
swift - Fetching OpenGraph meta tags from URL
我正在尝试从 URL 中获取 og (OpenGraph) 标签并显示在应用程序中。对于大多数网站,我都正确地获取了标签,但对于某些网站,我没有。
例如。 This URL
当我在浏览器上渲染并检查时,它显示了元标记,但是当我尝试通过 cURL 获取 html 时,它 returns html 没有任何元数据的内容。但是,当我在 Slack 或 FB 中分享 URL 时,它会呈现带有 OG 标签的预览。
如何在 iOS 上完成?
感谢任何帮助。
您共享的 URL 的问题是该站点需要 Javascript 才能启用。
如果您没有启用 Javascript,您只会返回一个基本页面,说明您需要启用 Javascript 才能浏览网站(因此,没有开放图谱标签)。
您的浏览器、Slack 和 Facebook 执行 Javascript 但 cURL 不执行。 iOS.
中的 URLSession 也不会
在 iOS 中,您能够访问此类网站的 HTML 的唯一方法是使用 WKWebView 呈现页面。
然后,加载后,使用 evaluateJavascript(_:completionHandler:)
执行一些 Javascript 以获取 OG 标签。
对于使用 iOS 库的情况,这是唯一可行的解决方案。
Facebook、LinkedIn 等的 iOS 客户端不会在其 iOS 客户端上执行此操作。他们的 iOS 客户端调用他们的后端,传递 URL 进行处理,然后接收回预览。 Javascript 作为后端进程的一部分执行。
周围有 public 个 API 可以帮助您做同样的事情,例如:
我正在尝试从 URL 中获取 og (OpenGraph) 标签并显示在应用程序中。对于大多数网站,我都正确地获取了标签,但对于某些网站,我没有。
例如。 This URL
当我在浏览器上渲染并检查时,它显示了元标记,但是当我尝试通过 cURL 获取 html 时,它 returns html 没有任何元数据的内容。但是,当我在 Slack 或 FB 中分享 URL 时,它会呈现带有 OG 标签的预览。
如何在 iOS 上完成?
感谢任何帮助。
您共享的 URL 的问题是该站点需要 Javascript 才能启用。
如果您没有启用 Javascript,您只会返回一个基本页面,说明您需要启用 Javascript 才能浏览网站(因此,没有开放图谱标签)。
您的浏览器、Slack 和 Facebook 执行 Javascript 但 cURL 不执行。 iOS.
中的 URLSession 也不会在 iOS 中,您能够访问此类网站的 HTML 的唯一方法是使用 WKWebView 呈现页面。
然后,加载后,使用 evaluateJavascript(_:completionHandler:)
执行一些 Javascript 以获取 OG 标签。
对于使用 iOS 库的情况,这是唯一可行的解决方案。
Facebook、LinkedIn 等的 iOS 客户端不会在其 iOS 客户端上执行此操作。他们的 iOS 客户端调用他们的后端,传递 URL 进行处理,然后接收回预览。 Javascript 作为后端进程的一部分执行。
周围有 public 个 API 可以帮助您做同样的事情,例如: