如何从 iOS 8 开始获取浏览器 UserAgent 字符串?
Posted
技术标签:
【中文标题】如何从 iOS 8 开始获取浏览器 UserAgent 字符串?【英文标题】:How to get browser UserAgent string from iOS 8 onwards? 【发布时间】:2015-12-17 18:13:18 【问题描述】:除了使用以下方法之外,还有其他方法可以获取 ios 浏览器 UserAgent 字符串吗?请帮忙。
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
[webView loadhtmlString:@"<html></html>" baseURL:nil];
[webView evaluatejavascript:@"navigator.userAgent" completionHandler:^(id __nullable userAgent, NSError * __nullable error)
NSLog(@"%@", userAgent);
];
【问题讨论】:
您获取 userAgent 的方法是我们想出的最佳方法,@arango_86。我们绝对不会尝试将 UIWebView 用户代理与 WKWebView 用户代理进行匹配。 【参考方案1】:试试这个:
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString *userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
【讨论】:
嗨@Renandus,我打算使用“WKWebView”。但这种方式似乎是一种黑客行为。不是标准的。我的问题是还有其他方法可以做到这一点。而不是破解“navigator.userAgent”。 我认为没有其他办法,因为我们只能从 UIWebView 获取用户代理 为什么这是一个黑客行为?navigator.userAgent
值正是 webview 将用于请求的值。所以是最准确的。我唯一的建议是改用WKWebView
,因为不能保证UIWebView
的用户代理与WKWebView
完全相同。
同意。我想知道苹果为什么要这样做。如果有 API 来设置 customUserAgent ,为什么他们不能有 API 来获取“defaultUserAgent”。以上是关于如何从 iOS 8 开始获取浏览器 UserAgent 字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何从扩展 iOS 8 获取 NSManagedObjectContext 实例
如何从HttpServletRequest request里面获取客户端提交的post内容