私は、モバイル デバイスを検出するための無料のオープン ソース クロスプラットフォーム ライブラリである MobileESP プロジェクトの創設者であり、維持管理者でもあります。まだまだ大活躍です!:-)
www.mobileesp.org
MobileESPは、バイナリの「is mobile」応答のみを返します。iOS、Android、Windows Phone などのプラットフォーム別、または「iPhone Tier」スマートフォンとタブレットなどのデバイス カテゴリ別に検出できます。API ページを簡単に確認してください。
ご存じかもしれませんが、useragent 文字列はさまざまです。ブラウザがデバイスに同梱されている場合、製造元がカスタマイズする場合があります。たとえば、HTC は多くの場合、ネイティブ Android ブラウザーのユーザーエージェント文字列をカスタマイズします。
Google は、OEM がユーザー エージェントをカスタマイズする方法に関する推奨事項を提供します。デバイスを電話と見なす必要がある場合は、文字列に「モバイル」要素という単語を含めることをお勧めします。ただし、デバイスをタブレットと見なす必要がある場合は、文字列に "mobile"を含めないでください。もちろん、この推奨事項への準拠は大きく異なります。
Opera や Maxthon などのサード パーティのブラウザは、useragent 文字列に好きなものを入れることができます。名前のない特定の「新しい」ブラウザは、各プラットフォームのユーザーエージェント文字列に正しい情報を入れるという非常に貧弱な仕事をしています (たとえば、Android と iOS のバージョン)。これらのブラウザーから多くのトラフィックを取得し、プラットフォームおよびソフトウェア リビジョンごとに正確なユーザー エージェント値を追跡することに投資したい場合を除き、できることはあまりありません。
とにかく、MobileESP は、ページが提供されるときにページごとに検出を行うというビジョンを持って作成されました。私は意図的にコードを非常に読みやすくカスタマイズしやすいように書きました。
バッチ処理を行うには、次のようにします。
1.) コンストラクターで、initDeviceScan() メソッドをコメントアウトします。これは、一括処理には必要ありません。
2.) UserAgent と空の文字列をコンストラクタ (UAgentInfo()) に渡します。
3.) 次に、興味のある検出メソッドを実行します。ユーザーのスキャンに基づいて、時間を節約するためにそれらを実行する順序を慎重に検討してください。
たとえば、ほとんどのユーザーが iPhone を使用しており、それが関心のある検出基準の 1 つである場合は、最初にそのチェックを実行します。この例の場合、BlackBerry メソッドを最初に実行しないことは間違いありません。
私の連絡先情報は、ソース コードと Web サイトにあります。質問がある場合、またはバグに遭遇した場合は、メモを送ってください。MobileESP.org の Web サイトでいくつかのヒントを確認してください。
Aniket さん、あなたのプロジェクトの成功をお祈りします。