UserAgent获取与修改

💡 原文中文,约4600字,阅读约需11分钟。
📝

内容提要

本文讨论了在iOS应用中使用WKWebView替代UIWebView的问题,并介绍了使用WKWebView获取和设置UserAgent的实践方法。文章提到了通过搜索项目代码和查看SDK来确定是否使用了UIWebView,然后介绍了几种修正UserAgent的方法,包括使用UserDefaults和WKWebView的customUserAgent和applicationNameForUserAgent属性。最后,文章提到了在iOS 17和Xcode 15中使用NSUserDefault方法修正UserAgent的问题,并给出了注意事项。

🎯

关键要点

  • Apple自2019年起建议开发者将UIWebView替换为WKWebView。
  • 2020年4月新应用必须使用WKWebView,2020年12月应用更新也必须替换UIWebView。
  • 开发者可以通过搜索项目代码和查看SDK来确认是否使用UIWebView。
  • UIWebView获取UserAgent的方法是同步的,而WKWebView则是异步的。
  • 修正UserAgent的方法包括通过UserDefaults、WKWebView的customUserAgent和applicationNameForUserAgent属性。
  • NSUserDefaults方法在iOS 17和Xcode 15中可能会出现问题,需使用其他方法修正UserAgent。
  • 修正UserAgent的操作必须在loadRequest之前进行,以确保第一次生效。
  • 获取和修正UserAgent的webView与加载网页的webView应为不同实例。
  • WKWebView的创建和执行JS方法必须在主线程中进行。
➡️

继续阅读