原因
现在很多app都会访问自己家的网页,然后服务器的兄弟们就要求设置好userAgent。
好吧,我们答应便是?。实现
既然都答应了,那么我们来看看这个东西怎么实现吧。
首先我们来看看如何获取userAgent这玩意吧。UIWebView *webView = [[UIWebView alloc] init]; webUserAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"]; 复制代码
这样我们就获取到了系统的userAgent,然后我们就对他进行ooxx修改后设置上吧。
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent": webUserAgent}] 复制代码
OK打完收工~!?
太天真了,少年! 你以为这样就完事了吗? 不一会儿,后台的兄弟就过来调戏你了,说好的UA怎么没有设置成功啊???? 哎哟,我心中的草泥马抑制不住的奔腾啊! 原来,在每次使用webview的时候需要调用一下navigator.userAgent
才会生效啊! [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"]; 复制代码
妈个蛋的,这是什么坑?
哈哈哈,不管怎么样,始终是克服了呢,发版吧!又太天真了,少年! 测试同学跑过来说,userAgent设置不成功啊! 这个时候,你明显的感觉到自己的发际线向后移动了1微米! 冥思苦想才发现原来,某三方库也设置了UA。CFPreferencesSetAppValue(CFSTR("UserAgent"), (__bridge CFPropertyListRef _Nullable)(userAgent), CFSTR("com.apple.WebFoundation")) 复制代码
这又是什么骚操作??
而且,这种方法设置了以后,上面那种方法是修改不了的。 那么CFPreferencesSetAppValue
这个东西是干什么的呢? 咳咳,官方网站是这么说的。 嗯,简单的说,就是设置了配置文件。 完事! 好吧,这下真的应该没什么坑了吧?! ps:
- 这里感谢下今日头条的同学,文中的某三方库其实就是头条的广告sdk。第二种设置UA的方法也是头条的同学给我们说的。
- 从这里知道了Plist文件编程。准备看一看,下篇文章写写吧。