IOS修改设备用户代理UserAgent

 用户代理 User Agent,是指浏览器,它的信息包括硬件平台、系统软件应用软件和用户个人偏好

在UIWebView的一个代理方法里面,可以查看当前设备的UserAgent

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

{

    //获取当前设备UserAgent

    NSLog(@"%@",[requestvalueForHTTPHeaderField:@"User-Agent"]);

return YES;

}


得到是一串很长的东西

Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D201(这个只能在代理里获取一次,以后全部为空)



有时候,业务需要在这个agent后面加上一些特殊标识符来区分设备以及应用的平台,比如安卓和苹果版本,这个时候往往要在后面加上一些东西,那么如何修改UserAgent呢。

苹果不允许直接在UIWebView里面修改自己的UserAgent,就算你改了也会被马上覆盖.但是苹果提供了一种永久修改的方法,记住是永久修改,如果想改成其他的必须要覆盖以前的才行。

 //修改agent

    self.agentDic = [[NSDictionaryalloc] initWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D201 Ucard/IOS",

                    @"UserAgent", nil];

    [[NSUserDefaultsstandardUserDefaults] registerDefaults:self.agentDic];


修改完毕。


在ios开发中,如何获取到是否使用了代理呢?以及使用的代理IP呢?

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. //得到代理  
  2.     CFDictionaryRef proxySettings = CFNetworkCopySystemProxySettings();  
  3.     NSDictionary *dictProxy = (__bridge_transfer id)proxySettings;  
  4.     NSLog(@"%@",dictProxy);  
  5.       
  6.     //是否开启了http代理  
  7.     if ([[dictProxy objectForKey:@"HTTPEnable"] boolValue]) {  
  8.           
  9.         NSString *proxyAddress = [dictProxy objectForKey:@"HTTPProxy"]; //代理地址  
  10.         NSInteger proxyPort = [[dictProxy objectForKey:@"HTTPPort"] integerValue];  //代理端口号  
  11.         NSLog(@"%@:%d",proxyAddress,proxyPort);  
  12.           
  13.     }  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值