14

我只想用 Safari 浏览器在 iPhone 和 iPod 中打开我的网站。对于任何其他浏览器,如 Chrome、Dolphin 等,它不应该打开。

但目前我几乎从所有设备上都获得了相同的用户代理:

对于 Safari:

User Agent String :: mozilla/5.0 (iphone; cpu iphone os 7_0_2 like mac os x) applewebkit/537.51.1 (khtml, like gecko) version/7.0 mobile/11a501 safari/9537.53

对于铬:

User Agent String :: mozilla/5.0 (iphone; cpu iphone os 7_0_2 like mac os x) applewebkit/537.51.1 (khtml, like gecko) crios/30.0.1599.16 mobile/11a501 safari/8536.25

对于 Mercury 浏览器:

User Agent String :: mozilla/5.0 (iphone; cpu iphone os 6_0_1 like mac os x) applewebkit/536.26 (khtml, like gecko) mercury/7.4.2 mobile/10a523 safari/8536.25

对于海豚浏览器:

User Agent String :: mozilla/5.0 (iphone; cpu iphone os 7_0_2 like mac os x) applewebkit/537.51.1 (khtml, like gecko) version/6.0 mobile/10a523 safari/8536.25

使用 Chrome,我可以通过检查字符串crios和 Mercury 来查看mercury,但是其他似乎与 Safari 具有相同用户代理的浏览器呢?

4

3 回答 3

29

另一个答案并不完全正确。在 iOS 上,Apple 阻止任何竞争浏览器实际包含他们自己的渲染引擎;都必须使用标准的 webview。

因此,所有这些第 3 方浏览器(具有同步收藏夹等功能)都只是围绕 Safari 驱动的 webview 的包装器,它实际呈现页面,因此它们都具有 Safari 的用户代理字符串。

于 2013-11-07T11:38:23.957 回答
5

浏览器故意这样做是为了防止人们做你想做的事情。他们的开发人员认为,由于他们使用与其他人相同的 Web 引擎(WebKit、blink 或 gecko),因此他们很可能会为类似浏览器优化的页面渲染得很好(这很可能是真的)。

所以很可能没有办法告诉。

于 2013-10-09T06:30:57.103 回答
0

解决水银,歌剧,铬和火狐但不是海豚

(
  (/(iPad|iPhone|iPod)/gi).test(userAgent) &&
  !(/CriOS/).test(userAgent) &&
  !(/FxiOS/).test(userAgent) &&
  !(/OPiOS/).test(userAgent) &&
  !(/mercury/).test(userAgent)
)
于 2016-01-25T07:39:45.707 回答