web-dev-qa-db-ja.com

HTML5:JavaScriptを使用してモバイルまたはPCを検出しますか?

ユーザーがHTML5でモバイルまたはPC/Macブラウザーを使用しているかどうかを検出するには、どのJavaScriptコードを使用できますか?

12
gustavdebruyn

私は数年前にこれを調べていました。つまり、100%の信頼性でこれを行うことはできません。 「最良の推測」を提供するために一般的に使用される2つのアプローチがあるようです。

1。ユーザーエージェントの検出これは、クライアントが何であるか要求であるかを確認する場所です。例えば.

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
    // is mobile..
}

このプロパティが誤って変更されたり、その他の方法で変更されたりすることはかなり容易であると私は考えているので、完全ではありません。さらに、このリストが2年後、2週間後、2日後の時点でも正確である可能性は非常に低いです。

2。クライアント機能の使用ご想像のとおり、より実用的なアプローチ-クライアントの既知の物理的機能に対応できます。例えば.

if( screen.width <= 480 ) {     
    // is mobile.. 
}

しかし、これも理想的ではありません。最近のデバイスのピクセル密度がますます高くなると、誤解を招く結果になります。実際よりも「部屋」が多いように見えるからです。さらに、ブラウザが異なれば、機能も異なる方法で公開される場合があります。

デスクトップとデバイスを確実に区別するためのより良いアイデアがある場合は、コメントしてください! :)

31
ne1410s