web-dev-qa-db-ja.com

デスクトップとモバイルのChromeユーザーエージェントをどのように検出しますか?

Chrome Desktop Extensionホームページで、ユーザーがChrome for DesktopまたはChromeを使用しているかどうかを検出しようとしています。 = Androidのモバイルの場合。現在、以下のスクリプトはAndroid=Chromeデスクトップクロムと同じ。デスクトップ上でChrome it 「chrome」リンクを表示する必要がありますが、誰かがChrome for Androidの場合、それはshould「mobile-other」リンクを表示します。

脚本:

<script>$(document).ready(function(){
    var ua = navigator.userAgent;
    if (/Chrome/i.test(ua))
       $('a.chrome').show();

    else if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile/i.test(ua))
       $('a.mobile-other').show();

    else
       $('a.desktop-other').show();
  });</script>

Chrome Androidユーザーエージェント:

Mozilla/5.0 (Linux; <Android Version>; <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev>
19
WoJo

問題は、ユーザーエージェントがデスクトップバージョンでもモバイルバージョンでも常に「Chrome」を持っていることです。そのため、より具体的なケースを最初に確認する必要があります。

$(document).ready(function(){
    var ua = navigator.userAgent;

    if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(ua))
       $('a.mobile-other').show();

    else if(/Chrome/i.test(ua))
       $('a.chrome').show();

    else
       $('a.desktop-other').show();
});
26
imtheman

そのため、最新のChrome iOSユーザーエージェント文字列に従って@imthemanのコードを更新するには:

$(document).ready(function(){
var ua = navigator.userAgent;

if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(ua))
   $('a.mobile-other').show();

else if (/Chrome/i.test(ua))
   $('a.chrome').show();

else
   $('a.desktop-other').show();
});
2
Charlse Peng