UserAgent
如果App項(xiàng)目中, 使用了webview, 后臺(tái)需要知道該用戶的來源, 使用的設(shè)備信息等,來區(qū)分是網(wǎng)站端還是移動(dòng)端, 從而進(jìn)行一些后續(xù)處理, 這是需要判斷依據(jù) 《UserAgent》夜畴,簡(jiǎn)稱:UA
UserAgent是什么
User Agent : 用戶代理拖刃,是指瀏覽器,它的信息包括硬件平臺(tái)、系統(tǒng)軟件贪绘、應(yīng)用軟件和用戶個(gè)人偏好兑牡。iOS中 主要用于webview加載的頁面, 給后臺(tái)提供處理依據(jù).
處理 : 用webview, 調(diào)用 JS 的navigator.userAgent, 獲取原UserAgent, 與后臺(tái)商定, 拼接字符串, 放入字典中, 存儲(chǔ).
如何獲取,更改UserAgent
UA很多情況税灌,在首次打開應(yīng)用時(shí)候均函,就需要根據(jù)獲得的UA,與后臺(tái)交接菱涤,來決定數(shù)據(jù)數(shù)據(jù)處理苞也。
所以,經(jīng)常會(huì)出現(xiàn)在AppDelegate.h上粘秆。
不多說如迟,直接上代碼:
#import "AppDelegate.h"
@interface AppDelegate ()
/**
原始的UA
*/
@property (nonatomic,strong) NSString * OriginalUA;
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self SetUpUA];
return YES;
}
/**
設(shè)置UA(UserAgent)
*/
-(void)SetUpUA{
UIWebView* WebView= [[UIWebView alloc] initWithFrame:CGRectZero];
// 獲取原始的UA
_OriginalUA = [WebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSLog(@"原始的UA=%@", _OriginalUA);
// 當(dāng)前應(yīng)用軟件版本
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString *appCurVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
// NSLog(@"當(dāng)前應(yīng)用軟件版本號(hào):%@",appCurVersion);
// 創(chuàng)建一個(gè)Str,用于覆蓋到原始的UA
// 拼接風(fēng)格:原始UA-應(yīng)用名稱-系統(tǒng)-版本號(hào)(按照自己的喜好攻走,設(shè)計(jì)一個(gè)風(fēng)格)
// 把Str覆蓋原始的UA殷勘,
NSString *Str = [NSString stringWithFormat:@"%@-應(yīng)用名稱-iOS-%@",_OriginalUA,appCurVersion];
NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:Str, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];
// 重新獲取一下UA,一定要初始化一次WebView
WebView= [[UIWebView alloc]init];
NSString *UpdateAgent = [WebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSLog(@"newUserAgent=%@",UpdateAgent);
}
@end
一起看一下打印的結(jié)果:
<pre>2017-06-13 15:17:48.515 UA[1871:123554] 原始的UA=Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E269
2017-06-13 15:17:48.523 UA[1871:123554] newUserAgent=Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E269-應(yīng)用名稱-iOS-1.0