WebLinkPreview 1.0.1

WebLinkPreview 1.0.1

Philip Bui 维护。



  • 作者
  • Philip Bui

Web Link Preview

CI Status Version Carthage Compatible Platform License

这个库旨在帮助开发者创建网站链接预览,给定一个网页链接。有一些网站公约可以使用;网站的主题颜色或图标,或描述链接的 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许可证。详情请见文件。