Swift软件包 · v0.1.0
KLShareLink
从显式输入或分享文本中选择HTTP(S) URL。
KLShareLink是同步解析分享输入的Swift软件包,不依赖第三方库。它按固定顺序检查显式URL、文本中的链接候选、服务域名和旧格式标记,返回符合规则的HTTP(S) URL,并在能够确认时附带服务名称。
功能
- 安全的显式URL优先
- 按文本出现顺序检测HTTP(S) 候选
- 优先选择与已配置服务域名匹配的链接
- 拒绝localhost、.local、回环、链路本地与RFC 1918直接写出的IP地址
不包含的功能
软件包只负责选择链接,不发起网络请求,也不处理重定向、跟踪参数或访问记录。DNS结果和每次重定向的目标仍需由网络层验证。
通过SwiftPM安装
Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLShareLink.git", from: "0.1.0")使用方法
接入示例Swift
let resolver = ShareLinkResolver(providers: providers)
let result = resolver.resolve(
explicitURL: itemURL,
sharedText: itemText
)
if let url = result.url {
open(url, source: result.providerName)
}API文档
打开完整API文档。ShareLinkResolver不包含可变状态,符合Sendable,并且不会进行网络I/O。
ShareLinkProvider保存服务名称、域名和旧格式匹配规则的Codable配置。域名匹配支持指定主机及其子域。
ShareLinkResolution分别保存解析出的URL和服务名称。
示例App
Link Inspector
安全的显式URL优先 · 按文本出现顺序检测HTTP(S) 候选
Policy Playground
优先选择与已配置服务域名匹配的链接 · 拒绝localhost、.local、回环、链路本地与RFC 1918直接写出的IP地址