2010-11-26 14 views
0

私の現在の目標は、iPhone、Android、および他の特定のデバイスがいつJava Webアプリケーションにアクセスしているかを知ることです。私はそれ以上の具体的なことを知る必要はありません。 HTTP RequestヘッダーからUser-Agentを取得して文字列検索を行うことができます。特定のタイプのモバイルクライアントがWebアプリケーションにアクセスしているかどうかを確認するにはどうすればよいですか?

"iPhone"または "Android"が文字列に含まれているかのように簡単に表示できますか? user-agent information on wikipediaを見ると、それは私の必要性のために十分に単純なようです。

私はWURFLも見てきました。しかし、それは私が必要以上に多くのようです。さらに、APIはGPLであり、私は自分のライセンスをGPLにしたくありません。ありがとう!

答えて

0

粒度をあまり必要としない場合は、ユーザエージェントのiPhoneAndroidのような単純な文字列を検索すると問題ありません。

ユーザーエージェントの文字列は完全に任意であり、誰かが文字列を変更して自分の望むものにすることはできません。ほとんどの人は、特にモバイルデバイスではそうではありませんが、生成する統計情報を使用するときは注意してください。

はまた、例えばthisに応じてiPadのユーザーエージェント文字列は、あなただけのiPhoneを検索した場合、あなたはそのバケット内のすべてのiPadをキャッチすることを意味します

Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) 
AppleWebKit/531.21.10 (KHTML, like Gecko) 
Version/4.0.4 Mobile/7B314 Safari/531.21.10 

です。

(リアルタイムで結果を必要としない場合)もう一つのアプローチは、ユーザーエージェント文字列と一緒にアプリケーションにすべてのアクセスをログに記録し、ログ分析ツールを使用してあなたが必要とするデータ。

+0

ありがとうございました!はい、結果はリアルタイム処理に必要です。サポートしているモバイルデバイスの場合は、別のページに送信したいと考えています。 – finneycanhelp

+0

ところで、iPadについての良い点!私はそれをコーディングしながら見たいと思うでしょう。 :) – finneycanhelp

1

はい、リアルタイム処理には結果が必要です。サポートしているモバイルデバイスの場合は、別のページに送信したいと考えています。

... ...?違ったシンプルなスタイルの/ look'n'feel?これにはCSS media ruleを使用してください。

<link rel="stylesheet" href="default.css" media="screen, projection"> 
<link rel="stylesheet" href="mobile.css" media="handheld"> 

ハンドヘルドはhandheldのための1つを選択します。セクションを縮小/再配置する、またはスペースを消費する特定のセクションなどを省略する別のCSSを提供することができます。

ここでは、厄介なサーバーサイドのユーザーエージェントを盗聴する必要はありません。

+0

確かに!それはしばしば真実です。しかし、これは特殊なケースです。 – finneycanhelp

関連する問題