WKWebView iOS17设置UserAgent

WKWebView 设置 user-agent

参考文档

之前设置 user-agent 都是通过设置NSUserDefaults来实现的,不过升级到了iOS17之后这个方式不好用了。

老的设置方式:

Objective-c 复制代码
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];

目前看通过设置 webview 里边的 customUserAgent 来实现可以的。不过设置之前最好把原始的给拿出来,把自己想要设置的给加进去。

swift 复制代码
let configuration:WKWebViewConfiguration = .init()
configuration.allowsInlineMediaPlayback = true
let webView = WKWebView(frame: self.bounds, configuration: configuration)

let oldUserAgent = webView.value(forKey: "userAgent") as? String ?? ""
webView.customUserAgent = "\(oldUserAgent) xxx"

之后自测一下:

swift 复制代码
webView.loadHTMLString("""
  <!DOCTYPE html>
  <html>
    <body>
      <div id='ua'></div>
      <script>
        setTimeout(()=>{
          let ele = document.getElementById('ua')
          ele.innerHtml = navigator.userAgent
          alert(navigator.userAgent)
        })
      </script>
    </body>
  </html>
  """, baseURL: nil)
相关推荐
请叫我飞哥@33 分钟前
Apple ID授权登入
ios·swiftui
Swift社区2 小时前
LeetCode 252 会议室题全解析:Swift 实现 + 场景还原
算法·leetcode·swift
weixin_452093254 小时前
关于apple ios苹果mdm监管锁的漏洞与修复
ios
明似水8 小时前
Flutter iOS 项目中 VolumeControllerPlugin 报错解决方案
flutter·ios
phoenix8 小时前
Codable 宏让 Swift 序列化如此简单!
swift
lilili啊啊啊9 小时前
怎么查看苹果手机和ipad的设备信息和ios udid
ios·智能手机·ipad
leluckys17 小时前
swift-08-属性、汇编分析inout本质
开发语言·汇编·swift
依旧风轻19 小时前
深入理解 rsync daemon 模式(守护进程)
linux·ios·rsync·daemon·sqi
leluckys20 小时前
swift-oc和swift block和代理
开发语言·ios·swift
测试萧十一郎1 天前
APP测试中ios和androis的区别,有哪些注意点
自动化测试·软件测试·功能测试·macos·ios·职场和发展·cocoa