我想用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
对于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 mercury
字符串来查看,但其他浏览器似乎与Safari具有相同的用户代理?
答案 0 :(得分:28)
other答案并非严格正确。在iOS上,Apple阻止任何竞争浏览器实际包含他们自己的渲染引擎;所有人都必须使用标准的webview。
因此,所有这些第三方浏览器(具有同步收藏夹等功能)只是围绕Safari驱动的webview实际呈现页面的包装器,因此它们都拥有Safari的用户代理字符串。
答案 1 :(得分:5)
浏览器会故意这样做,以防止人们做你想做的事情。他们的开发人员认为,由于他们使用相同的Web引擎(WebKit,blink或gecko),因此他们会轻松地为类似浏览器优化页面(这可能是正确的)。
所以很可能没有办法说出来。
答案 2 :(得分:0)
解决水银,歌剧,铬火狐但没有海豚的问题
(
(/(iPad|iPhone|iPod)/gi).test(userAgent) &&
!(/CriOS/).test(userAgent) &&
!(/FxiOS/).test(userAgent) &&
!(/OPiOS/).test(userAgent) &&
!(/mercury/).test(userAgent)
)