Swift软件包 · v0.1.0

KLShareLink

从显式输入或分享文本中选择HTTP(S) URL。

KLShareLink是同步解析分享输入的Swift软件包,不依赖第三方库。它按固定顺序检查显式URL、文本中的链接候选、服务域名和旧格式标记,返回符合规则的HTTP(S) URL,并在能够确认时附带服务名称。

支持平台
iOS 17+ · macOS 14+
开发工具
Swift 6.0+
许可证
MIT
第三方依赖

功能

  • 安全的显式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)
}
ShareLinkResolver

不包含可变状态,符合Sendable,并且不会进行网络I/O。

ShareLinkProvider

保存服务名称、域名和旧格式匹配规则的Codable配置。域名匹配支持指定主机及其子域。

ShareLinkResolution

分别保存解析出的URL和服务名称。

示例App

Link Inspector

安全的显式URL优先 · 按文本出现顺序检测HTTP(S) 候选

Policy Playground

优先选择与已配置服务域名匹配的链接 · 拒绝localhost、.local、回环、链路本地与RFC 1918直接写出的IP地址