美文网首页
WKWebView设置UserAgent

WKWebView设置UserAgent

作者: EASXAI | 来源:发表于2022-01-21 15:00 被阅读0次

    方式一
    WKWebView()?.customUserAgent = newStr
    方式二
    WKWebView()?.setValue(newStr, forKey: "applicationNameForUserAgent")

    同步获取设置
    guard let tempUrl = URL(string: webViewUrl) else {
    return
    }
    //若url无效会导致wkwebview崩溃
    if UIApplication.shared.canOpenURL(tempUrl) == false {
    return
    }
    if var userAgent = value(forKey: "userAgent") as? String {
    let newStr = "(userAgent ?? "")CustomApp"
    customUserAgent = newStr
    }
    异步获取设置
    private func getUserAgent(_ isNew: Bool = false) -> String {
    let tempWeb = WKWebView()
    var isEnd = false
    var originalUA: String = ""
    tempWeb.evaluateJavaScript("navigator.userAgent", completionHandler: {
    [weak self] oldAgent, _ in
    let oldStr = oldAgent as? String ?? ""
    let newStr = "(oldStr ?? "")CustomApp"
    originalUA = isNew ? newStr : oldStr
    isEnd = true
    })
    while(!isEnd) {
    RunLoop.current.run(mode: .default, before: Date.distantFuture)
    }
    return originalUA
    }
    全局设置
    evaluateJavaScript("navigator.userAgent", completionHandler: { [weak self] oldAgent, _ in
    let oldStr = oldAgent as? String ?? ""
    let newStr = "(oldStr)CustomApp"
    UserDefaults.standard.register(defaults: ["UserAgent": newStr])
    UserDefaults.standard.synchronize()
    })

    相关文章

      网友评论

          本文标题:WKWebView设置UserAgent

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