【问题标题】:What is the User Agent string for Apple TVs running tvOS?运行 tvOS 的 Apple TV 的用户代理字符串是什么?
【发布时间】:2015-12-15 00:47:24
【问题描述】:

运行新 Apple tvOS 操作系统(我相信它基于 iOS)的 Apple TV 的用户代理字符串是什么?他们是否将自己报告为“iOS”设备?

【问题讨论】:

  • 你想做什么?发出 HTTP 请求的应用可以设置它想要的任何值作为其 User-Agent 标头。

标签: apple-tv tvos


【解决方案1】:

我没有看到任何官方文档,但是很多人报告说 tvOS 的用户代理是这样的:

  • [AppName]/1 CFNetwork/758.1.6 Darwin/15.0.0

  • [AppName]/1 CFNetwork/758.1.2 Darwin/15.0.0

我见过类似的东西。 这是我的:

  • [AppName]/1 CFNetwork/758.2.8 Darwin/15.2.0 注意:这些用户代理可以更改。

您可以使用 HTTP 代理和监视器自行检查,例如 Charles。 在SO 上也提到过。

来源:

【讨论】:

    【解决方案2】:

    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

    【讨论】:

      【解决方案3】:

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-11
        • 2012-08-31
        • 2011-04-05
        相关资源
        最近更新 更多