用于iOS 7上的Safari浏览器的用户代理

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

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

对于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 

对于Chrome:

 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 

对于Dolphin浏览器:

 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 by mercurystring来查看,但其他浏览器似乎与Safari具有相同的用户代理?

另一个答案是不严格正确的。 在iOS上,苹果阻止任何竞争的浏览器实际上包括他们自己的渲染引擎; 都必须使用标准的网页视图。

因此,所有这些第三方浏览器(具有诸如同步collections夹等function)仅仅是围绕着实际呈现页面的由Safari提供支持的webview的包装,因此它们都具有Safari的用户代理string。

浏览器非常有意地阻止人们做你想做的事情。 他们的开发人员觉得,因为他们使用相同的Web引擎(WebKit,眨眼或壁虎)作为其他人,他们可能会渲染页面优化类似的浏览器就好(这可能是真的)。

所以最有可能的是没有办法告诉。

解决汞,歌剧,铬n火狐但不是海豚

 ( (/(iPad|iPhone|iPod)/gi).test(userAgent) && !(/CriOS/).test(userAgent) && !(/FxiOS/).test(userAgent) && !(/OPiOS/).test(userAgent) && !(/mercury/).test(userAgent) )