通常在appDelegate的didFinishLaunchingWithOptions里调用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *userAgent = [NSString userAgentStr]; //获取系统信息
比如// 4.0.8.201611041630 (x86_64; iOS 10.1; Scale/2.00)
NSDictionary * dictionary =@{@"UserAgent": userAgent }; //User-Agent
[[NSUserDefaultsstandardUserDefaults] registerDefaults:dictionary];
returnYES;
}
registerDefaults方法调用时会check NSUserDefaults里是否已经存在了相同的key,如果有则会把其覆盖。举个例子:
1. 当第一次run上面的app时,"UserAgent"="userAgent"会写入NSUserDefaults里
2.然后再次启动你的app时,获取最新的系统信息,
[[NSUserDefaults standardUserDefaults] setObject : userAgent forKey:@"UserAgent"];
这时NSUserDefaults里"UserAgent" 存储的就是最新的系统信息。
这种做法通常的应用场景是:UIWebView
在http协议里,头信息中有一个 User-Agent,它的作用是告诉服务器,用户客户端是什么浏览器,以及操作系统的信息的。在某些特殊的情况下,服务器根据浏览器的不同类型,输出不同的内容。