【发布时间】:2015-12-15 00:47:24
【问题描述】:
运行新 Apple tvOS 操作系统(我相信它基于 iOS)的 Apple TV 的用户代理字符串是什么?他们是否将自己报告为“iOS”设备?
【问题讨论】:
-
你想做什么?发出 HTTP 请求的应用可以设置它想要的任何值作为其 User-Agent 标头。
运行新 Apple tvOS 操作系统(我相信它基于 iOS)的 Apple TV 的用户代理字符串是什么?他们是否将自己报告为“iOS”设备?
【问题讨论】:
Apple TV 不支持 WebKit 框架,这意味着您无法在技术上显示网页,因此需要一个用户代理。
但是,如果您以某种方式让它运行一个新的 TVOS,那么用户代理肯定是:
Mozilla/5.0(Apple TV;CPU iPhone OS 9_0 像 Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13T534YI
【讨论】:
tvOS 目前(截至 2017 年 10 月)未在其 SDK 中公开任何 Web 视图组件(例如 UIWebView)。但是,您仍然可以强制 tvOS 使用反射加载 UIWebView(请参阅答案 here),然后从中提取用户代理字符串。
let webViewClass: AnyObject.Type = NSClassFromString("UIWebView")!
let webViewObject: NSObject.Type = webViewClass as! NSObject.Type
let webView: AnyObject = webViewObject.init()
let userAgent = webView.stringByEvaluatingJavaScript(from: "navigator.userAgent")
print(userAgent!)
输出:
Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Mobile/15J380
【讨论】: