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位址