iOS知识小集·设置userAgent的那件小事

2,664 阅读2分钟

原因

现在很多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这个东西是干什么的呢?
咳咳,官方网站是这么说的。
Plist文件编程
API介绍
嗯,简单的说,就是设置了配置文件。
完事!
好吧,这下真的应该没什么坑了吧?!

ps:

  1. 这里感谢下今日头条的同学,文中的某三方库其实就是头条的广告sdk。第二种设置UA的方法也是头条的同学给我们说的。
  2. 从这里知道了Plist文件编程。准备看一看,下篇文章写写吧。