方式有多种,这里简单的实现其中一种:
// 通过JS来获取 iOS 默认的 UserAgent
NSString *userAgent = [[[UIWebView alloc] init] stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
// 获取App名称,这里是有本地化支持的写法
// NSString *appName = NSLocalizedStringFromTable(@"CFBundleDisplayName", @"InfoPlist", nil);
// 没有本地化的写法
// NSString * appName = [[NSBundle mainBundle] infoDictionary][@"CFBundleDisplayName"];
// NSString *version = [[NSBundle mainBundle] infoDictionary][@"CFBundleShortVersionString"];
// NSString *customUserAgent = [userAgent stringByAppendingFormat:@" %@/%@", appName, version];
NSString *customUserAgent = [userAgent stringByAppendingString:@"plat_form:paopao"];
// 修改UserAgent
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent":customUserAgent}];
// 这里我是加载一个本地的Html文件
NSString * path = [[NSBundle mainBundle] pathForResource:@"index0" ofType:@"html"];
NSData * htmlData = [[NSData alloc] initWithContentsOfFile:path];
if (htmlData) {
[_webVi loadData:htmlData MIMEType:nil textEncodingName:@"NSUTF8StringEncoding" baseURL:nil];
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString * str = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
return YES;
}
Log-str:
Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12F69plat_form:paopao
Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12F69plat_form:paopao