decembersola avatar

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

decembersola

Published: 23 Jan 2018 › Updated: 23 Jan 2018iOS知识小集·设置userAgent的那件小事

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

原因

现在很多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文件编程。准备看一看,下篇文章写写吧。

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

Written by

Read more #ios posts


Best Posts From decembersola

We have not curated any of decembersola's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From decembersola