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方法必须在主线程中进行。
➡️