swift 获取WKWebView中URL参数的值并创建新URL

plupiseo  于 2022-11-28  发布在  Swift
关注(0)|答案(1)|浏览(275)

我正在尝试获取WKWebView的当前URL,从中搜索/复制一个值,然后创建一个新的URL。
我使用Swift,并有一个类似于https://example.org/bundle-572974a2.html的URL,并试图得到下面的值572974a2。我的目的是用这个值创建一个新的URL。数字可以随时改变。
我用这段代码来获取当前的WKWebView URL。我想我必须先把它转换成一个字符串。

let oldURL = webView.url

我用这段代码创建我的新URL。

var components = URLComponents()
        components.scheme = "https"
        components.host = "new-example.org"
        components.path = "/g"

        components.queryItems = [
            URLQueryItem(name: "newbundle", value: "XXXXXXXX")
        ]
        
        let newURL = components.url

如何将value: "XXXXXXXX"更改/粘贴为旧URL的值572974a2

k5hmc34c

k5hmc34c1#

一些简单的URL操作和字符串处理将从旧URL中获取号码:

let oldURL = URL(string: "https://example.org/bundle-572974a2.html")! // An example
let name = oldURL.deletingPathExtension().lastPathComponent // bundle-572974a2
let number = name.dropFirst(7) // remove "bundle-"

这里假设数字前面总是“bundle-”(或者任何七个字母的序列)。如果这可以改变,那么dropFirst(7)的使用将需要替换为可以处理字符串(如“bundle-572974 a2”)的代码,并删除不需要的部分。
然后,构建新的URL将变为:

var components = URLComponents()
components.scheme = "https"
components.host = "new-example.org"
components.path = "/g"

components.queryItems = [
    URLQueryItem(name: "newbundle", value: String(number))
]
        
let newURL = components.url

相关问题