A Beautiful Siteからのちょっとした Google 検索結果:
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
if(isMobile.any()){
// Mobile!
} else {
// Not mobile
}
機能検出が、実際にはひどいユーザー エージェント スニッフィングよりもはるかに優れていると主張するつもりはありません。しかし、デバイスがモバイルと見なされるかどうかを判断する機能を検出している場合は、まったく新しい一連の問題にさらされています。
pixel-ratio
新しいデスクトップ コンピューターは「Retina」またはスーパー HD である可能性が高いため、確認できません。device-orientation
もはや携帯特有のものではないので確認できません。一部のラップトップは値を返す可能性があるため、ジャイロスコープを確認することはできません (できれば)。
プラットフォームを分離せずに、すべてのプラットフォームで動作する Web サイトを構築してください!