OpenGraph 1.5.0

OpenGraph 1.5.0

测试已测试
Lang语言 SwiftSwift
许可 未知
发布最新发行版2022年7月
SPM支持 SPM

Satoshi Takano 维护。



OpenGraph 1.5.0

  • 作者
  • satoshi-takano

Swift Open Graph 协议(OGP)的封装

Build Status Carthage compatible Platform
OpenGraph 是 OGP(Open Graph protocol)的 Swift 封装。您可以使用以下方式获取 OpenGraph 并通过索引和枚举情况来访问属性。

OpenGraph.fetch(url: url) { result in
    switch result {
    case .success(let og):
        print(og[.title]) // => og:title of the web site
        print(og[.type])  // => og:type of the web site
        print(og[.image]) // => og:image of the web site
        print(og[.url])   // => og:url of the web site
    case .failure(let error):
        print(error)
    }
}

对于 macOS 10.15、iOS 13、watchOS 6、tvOS 13 和更高版本,您可以使用 async/await 语法。

do {
    let og = try await OpenGraph.fetch(url: url)
    print(og[.title]) // => og:title of the web site
    print(og[.type])  // => og:type of the web site
    print(og[.image]) // => og:image of the web site
    print(og[.url])   // => og:url of the web site
} catch {
    print(error)
}

所有元数据均在此定义:此处
此库不提供任何特定于平台的视图来显示 OGP 数据,以提高通用性。

此外,如果您想使用 Rx 接口来使用此库,请将以下扩展复制到您的项目中。

extension Reactive where Base: OpenGraph {
    static func fetch(url: URL?) -> Observable<OpenGraph> {
        return Observable.create { observer in
            guard let url = url else {
                observer.onCompleted()
                return Disposables.create()
            }

            OpenGraph.fetch(url: url) { result in
                switch result {
                case .success(let og):
                    observer.onNext(og)
                case .failure(let error):
                    observer.onError(error)
                }
                observer.onCompleted()
            }

            return Disposables.create()
        }
    }
}

要求

  • Xcode 11.x / Swift 5.x (如果您使用 Xcode 10.x,可以使用 1.1.0。)
  • iOS 10.0 或更高版本
  • macOS 10.9 或更高版本
  • tvOS 9.0 或更高版本
  • watchOS 2.0 或更高版本

如果您使用 Swift 2.2 或 2.3,请使用 OpenGraph 的更旧版本

安装

CocoaPods

pod 'OpenGraph'添加到您的Podfile中,并运行pod install

Carthage

github "satoshi-takano/OpenGraph"添加到您的Cartfile中,并运行carthage update

如何处理重定向

在大多数情况下,OpenGraph可以自动处理服务器端重定向。但是有些网页会在前端JavaScript中引发重定向。您可能可以通过如下更改User-Agent来处理这类重定向。
#43

许可协议

本库遵循MIT许可协议。