【问题标题】:How to get browser UserAgent string from iOS 8 onwards?如何从 iOS 8 开始获取浏览器 UserAgent 字符串?
【发布时间】: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 用户代理进行匹配。

标签: ios ios8 user-agent 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”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
相关资源
最近更新 更多