基本的に次のことを実行したいと思います(JavaScriptまたはPHPで):
_if (desktop browser) {
do x;
}
else { // mobile browser
do not do x;
}
_
ブラウザの使用 検出方法は推奨されません であることが知られています。より良い解決策は、 機能テスト を使用することです。私の質問は、モバイルブラウザがデスクトップバージョンと同じくらいスマートで強力になったので、デスクトップ以外のブラウザからデスクトップをフィルタリングするための理想的な排他的機能検出は何ですか?
条件付きチェックを逆にする、つまりif (mobile browser) {} else ...
の方が問題が多いと思いますよね?
美しいサイト からの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
}
私は、機能検出がwayであり、実際にはひどいユーザーエージェントスニッフィングよりも好ましいとは主張しません。しかし、デバイスがモバイルと見なされるかどうかを判断する機能を検出している場合は、まったく新しい一連の問題にさらされています。
確認できませんpixel-ratio
新しいデスクトップコンピュータは「網膜」またはスーパーHDである可能性が高いためです。確認できませんdevice-orientation
それはもはやモバイルに固有のものではないからです。一部のラップトップは値を返す可能性があるため、ジャイロスコープをチェックすることはできません(可能な場合)。
それらを分離しようとせずにすべてのプラットフォームで動作するウェブサイトを構築してください!
私はあなたがphpで get_browser() 関数を探していると思います。
Browscap.iniファイルでブラウザの情報を検索することにより、ユーザーのブラウザの機能を判別しようとします。