iOS12.0、iOS12.1 WKWebview设置userAgent不生效 解决方案

830 阅读1分钟

最近在更新项目时候遇到这个bug,以下是我的解决步骤

1、在AppDelegate里面设置一个默认的UserAgent

let agentDefault = "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16A366 YSL"
UserDefaults.standard.register(defaults: ["UserAgent": agentDefault])
UserDefaults.standard.synchronize()

2、在wkwebview,更新下UserAgent

webView.evaluateJavaScript("navigator.userAgent") {[weak self] (info, error) in
    guard let this = self else{
        return
    }
    if let str = info as? String{
        if str.hasSuffix("YSL") {
           //重新刷新下webview
            this.loadURL()
            return
        }
        let userString = str + "YSL"
        UserDefaults.standard.register(defaults: ["UserAgent": userString])
        UserDefaults.standard.synchronize()
        this.webView.customUserAgent = userString
        CWLog(this.webView.customUserAgent)
    }
    //重新刷新下webview
    this.loadURL()
}