she*_*ath 6 xcode nsurl ios swift
我的要求是通过过滤掉它的子域名来获取 URL 的域名。
我可以使用以下代码获取主机名
if let url = URL(string: "https://blog.abc.in/") {
if let hostName = url.host {
print("host name = \(hostName)") // output is: blog.mobilock.in
}
}
Run Code Online (Sandbox Code Playgroud)
所以在 URL博客中是一个子域,而abc是一个域名,我希望通过排除其子域部分来只知道/打印abc。
在android中,有一个返回域名的类InternetDomainName,我正在寻找iOS的类似解决方案
我尝试了几个答案,但它不是重复的任何一个或其中一些不起作用,或者这是一种解决方法。
所以最后我找到了解决这个问题的更好和标准的方法 -
Mozilla 志愿者维护公共后缀列表,您可以在那里找到相应语言的库列表。所以在列表中也存在Swift 库。在撰写此答案时,Swift 库没有通过 CocoPods 添加它的条件,因此您必须将下载的项目直接添加到您的项目中。假设Swift 库已添加到您的项目中,用于获取 TLD 名称的代码。
import DomainParser
static func getTLD(withSiteURL:String) -> String? {
do{
let domainParse = try DomainParser()
if let publicSuffixName = domainParse.parse(host: withSiteURL)?.publicSuffix {
if let domainName = domainParse.parse(host: withSiteURL)?.domain {
let tldName = domainName.replacingOccurrences(of: publicSuffixName, with: "").replacingOccurrences(of: ".", with: "")
print("top level name = \(tldName)")
return tldName
}
}
}catch{
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
添加域解析器库作为您项目的子项目,因为该库的 pod 尚不可用
| 归档时间: |
|
| 查看次数: |
6514 次 |
| 最近记录: |