欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

XZ_iOS 之 替换 url中的参数的值

程序员文章站 2022-03-10 21:48:44
...

需求如下:

用户登录之后,需要刷新web页,这时候需要替换UserId和time的值。

URL如下:

http://***?time=***&appname=***&value=***&userId=**

直接获取链接的query值,修改即可,代码如下:

/// 修改 query 中参数的值
func changeValue(webUrl: String) -> URL {
        guard let url = NSURL(string: webUrl), let urlComponents = NSURLComponents(url: url as URL, resolvingAgainstBaseURL: false) else
        { return NSURL(string: webUrl)! as URL }
        
        for i in 0..<(urlComponents.queryItems?.count ?? 0) {
            
            if urlComponents.queryItems?[i].name == "userId" {
                urlComponents.queryItems?[i].value = User.userId
            }
            
            let timeStr = "\(Date().nowTimeinterval())"
            
            if urlComponents.queryItems?[i].name == "time" {
                urlComponents.queryItems?[i].value = timeStr
            }
            
            if urlComponents.queryItems?[i].name == "value" {
                urlComponents.queryItems?[i].value = "value"
            }
        }
        
        return urlComponents.url!
        
        print("--------webUrl:", webUrl, "urlComponents:", urlComponents)
    }

其中,urlComponents.url! 就是修改了这些参数之后的值。time=***&appname=***&value=***&userId=**

urlComponents.queryItems 是[{"time":"***"}, {"appname":"***"},{"value":"***"},{"userId":"***"}]