美文网首页
Swift给webView添加请求头

Swift给webView添加请求头

作者: coming_168 | 来源:发表于2019-04-13 17:48 被阅读0次
这里用通过拦截webView的请求来给webView添加请求头
   override func viewDidLoad() {
        super.viewDidLoad()
        setWebView()
    }
    
    private func setWebView(){
        webView.frame = CGRect(x: 0, y: 0, width: ScreenW, height: ScreenH)
        webView.delegate = self
        view.addSubview(webView)
        loadString(urlStr: urlStr)
    }
    
    /// 加载网页url
    private func loadString(urlStr:String){
        let url = URL.init(string: urlStr)
        let request = URLRequest.init(url: url!)
        webView.loadRequest(request)
    }
  • 代理方法
extension PPWebViewVC : UIWebViewDelegate{
    // 拦截请求,添加请求头
    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {
        let dic:Dictionary<String,AnyObject> = request.allHTTPHeaderFields! as Dictionary<String, AnyObject>
        let userId = dic["userId"]
        let shopId = dic["shopId"]
        let dataName = dic["dataName"]
        // 当userId和shopId不在请求头中就添加
        if (userId == nil && shopId == nil) {
            let newUrl = request.url
            let newRequest:NSMutableURLRequest = NSMutableURLRequest.init(url: newUrl!)
            newRequest.addValue("\(User().uid ?? -1)", forHTTPHeaderField: "userId")
            newRequest.addValue("\(User().sid ?? -1)", forHTTPHeaderField: "shopId")
            newRequest.addValue(String(format: "%@", dataName as! String).addingPercentEncoding(withAllowedCharacters: .urlUserAllowed)!, forHTTPHeaderField: "dataName") // 字符串utf8编码
            webView.loadRequest(newRequest as URLRequest)
            return false
        }
        return true
    }
}

相关文章

网友评论

      本文标题:Swift给webView添加请求头

      本文链接:https://www.haomeiwen.com/subject/badrwqtx.html