Web Link Preview
这个库旨在帮助开发者创建网站链接预览,给定一个网页链接。有一些网站公约可以使用;网站的主题颜色或图标,或描述链接的 OpenGraph。
- 性能 - 使用 HEAD 请求不需要下载文件二进制,使用正则表达式进行解析。
- 缓存 - 注入自己的缓存或使用默认的 NSCache。
- 可扩展 - 另外,还可从 HEAD 标签解析不同的元数据。
- 预览方法 - 解析元数据到相关信息的额外方法。
- URL 解析 - 从绝对或相对的超链接引用创建 URL。
- 十六进制颜色 - 从 Hex 字符串(6、7、8、9 长度)创建 UIColor。
- 文字颜色 - 根据网站主题颜色,为文字在黑色或白色。
需求
- iOS 8.0+ / macOS 10.9+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 10.3+
- Swift 4.2+
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问其网站。要使用 CocoaPods 将 WebLinkPreview 集成到您的 Xcode 项目中,请在 Podfile
中指定它。
pod 'WebLinkPreview'
Carthage
Carthage是一款去中心化的依赖管理器,它构建你的依赖项,并提供给你二进制框架。要将WebLinkPreview集成到你的Xcode项目中使用Carthage,请在你的Cartfile
中指定它。
github "philip-bui/web-link-preview"
Swift Package Manager
Swift Package Manager是一个用于自动化Swift代码分配的工具,已集成到swift
编译器中。它目前处于早期开发阶段,但WebLinkPreview支持在支持的平台上使用它。
一旦设置了你的Swift包,将WebLinkPreview作为依赖项添加就像将它添加到Package.swift
中的dependencies
值一样简单。
dependencies: [
.package(url: "https://github.com/philip-bui/web-link-preview.git", from: "1.0.0"))
]
用法
import WebLinkPreview
// ViewController.swift - Load url.
_ = WebLinkMetadata(url: "https://www.youtube.com") { webLinkMetadata, error in
guard let webLinkMetadata = webLinkMetadata else {
return // Handle error.
}
webLinkMetadata.content // enum [.html, .image(URL), .video(URL), .other(URL)]
webLinkMetadata.iconURL // URL for largest sized <link rel="icon" ...>
webLinkMetadata.themeUIColor // UIColor for <meta name="theme-color" ...>
webLinkMetadata["image"] // String for <meta property="og:image" ...>
webLinkMetadata[.image] // OpenGraph enum for above
// Any UI operations should be performed on main thread.
}
改进
- 支持更多的来自Content-Type charset的字符串编码。支持UTF-8和Latin1。
- 使用Cache-Control和Expires头部来为NSCache过期。
- HTTP Stub测试。
- YouTube链接类型。YouTube提供嵌入式视频链接而不是视频文件,其他库解决了这个问题。
- 重复的OpenGraph标签。对于网站上存在多个图像,应该使用数组。
许可证
WebLinkPreview遵循MIT许可证。详情请见文件。