Chrome上的iOS用户代理

我有一个网页,从iOS设备查看时显示略有不同的内容。 为了检测有问题的设备,该网站寻找iPad;iPod; ,或iPhone; 在用户代理string中。

这对所有iOS设备上的Safari都是完美的。 使用适用于iOS的Chrome进行testing,可以在iPhone和iPad 1上运行,但不适用于iPad 3.网站正在获取以下(意外)用户代理string:

 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10 

这似乎与chrome菜单中的“请求桌面站点”选项有关(桌面chrome中的扳手图标是什么)。 对于我的网站,它被禁用,似乎被locking到桌面而不是移动网站。 对于其他站点,启用该选项后会导致发送不同的用户代理string。 例如:尝试http://ifconfig.me/all

所以我的问题是:

  • Chrome使用什么标准来决定是否启用此选项
  • 鉴于Chrome已经强制这个网站到桌面站点,我怎么渲染iOS的具体内容(在我的情况下,使用由我的应用程序处理的协议的链接)

如果你想自己testing一下,这里有一个简单反映用户代理string的页面。

  • http://minicompapp.com/Home/UserAgent

浏览器将根据您是否充当伪装成移动浏览器的桌面浏览器来切换使用两个用户代理string。

用户代理:

 Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en-gb) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3 

用户代理“请求桌面版本”之后:

 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10 

这只是向Web服务器提示客户是谁的提示。 浏览器应该独立于用户代理呈现接收到的网页内容。