2011-09-29 5 views
6

私はいくつかの研究をしていますが、私はすでに答えを知っていると思いますが、javascriptやCSS3メディアクエリに頼らずにデバイスの画面サイズとピクセル密度を得ることができる方法があれば。サーバー側の画面サイズとピクセル密度を検出しますか?

本質的には、画面解像度とピクセル密度を得るために、サーバーがURI要求のどのサーバーに画像を決定できるようにするために、何が必要かを検討しています。

これまでのところ私はこれも可能だとは言いませんでしたが、私はちょっと考えました。

答えて

0

Rubyはサーバー側で実行されます。クライアントから情報を取得することなく、クライアント機能を認識することはできません。

+0

これは私が考えたものです。私は今、抜け道を考えようとしています。 – dougoftheabaci

+1

クライアントがあなたに指示しない限り、私はどのように見えず、JavaScript(おそらく)を介していくつかの情報を得ることを意味すると思います。あなたはユーザーエージェントを介して*少量の情報量を集めることができるかもしれませんが、基本的に役に立たないのです。 –

+0

downvotesに関するコメントは、特に正解については高く評価されています。スクリーンサイズと密度の決定は必ずクライアント情報に依存しますが、これは疑いの余地がありません。 –

9

私は完全に上記の正解に同意しません。現実には、この答えは多くの場合正しいですが、理論的にはそうではありません。多くの場合、Webサーバに対する要求にはUser-Agentフィールドが含まれています。このフィールドは、理論的には、デバイスの画面解像度とプロパティに関する情報を識別するために使用できます。

Web要求は、最初にクライアントを経由しません。それらはサーバに渡され、クライアントへのページを提供し、サーバはその要求を最初に取得します。たとえば、Ruby on Railsは、アクションコントローラを介してリソースへのリクエストを受け取り、レスポンスのページを提供します。

ルックを例にようなUAパーサ:https://github.com/visionmedia/user-agent

が私のコンピュータによって送信されているサンプルユーザーエージェントは次のとおりです。

User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like enter code here`Gecko) Chrome/17.0.963.83 Safari/535.11 

私は何を私の画面に良い推測を行うことが極めて可能だと思います解像度(DPIなど)は、サーバーを介してその情報が与えられます。もちろん、参照するデバイス情報の表が必要です。

モバイルデバイスの場合は、さらに簡単になります。ユーザーエージェントが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 

あなたは、画面の解像度がサーバー上でどのようなものかを確かに知ることができます。あなたはその情報でブラウザの高さと幅を知ることさえできます。私は、AndroidやWin Moなどの多くのモバイルデバイスでも同じことが当てはまると考えています。

合計では、これを実行するのは実用的ではないと私は同意しますが、私は同意しません。

フェイスブックモバイルアプリの作成時に同様の問題に直面していたため、フェイスブックはデバイスと画面解像度をカタログ化し、オープンソース化したと主張しています。すべてのモバイルブラウザレンダラー間のすべての不一致をカタログ化して、個々のケースごとにクライアントアプリケーションを調整する必要がありました。おそらく、そのプロジェクトは理論的にこれを行うのに必要な情報を持っているかもしれません。 Mobviousはまともな仕事をしていませんように見えることは不可能だ何かのために

+1

あなたは、任意のモニタサイズの3つのMBP、2つのデスクトップのいずれかでOSXを実行していますか?また、iOSデバイスを使用していない限り、携帯端末ではそれほど簡単ではありません。 Meh。 –

2

Mobviousアプリ/ウェブサイトが 電話で、またはタブレットで、またはパソコンでアクセスされているかどうかを検出します。この情報をアプリ全体で に使用できます。 (たとえば、フロントエンドコード をデバイスタイプに関連付ける。Ruby on Railsのプラグインがあり、 がこれを手伝ってくれます。)

https://github.com/jistr/mobvious

+1

画面サイズは表示されず、ユーザーエージェント、URL、またはCookieのみが表示されます。 –

0

あなたはAhoyを使用することができます。 current_visitメソッドには、次の情報が含まれています。

誰かがあなたのウェブサイトを訪問すると、アホイは 有用な情報の多くが付いている訪問を作成します。

トラフィックソース - リファラ、参照ドメイン、ランディングページ、検索
キーワード場所 - 国、地域、および都市の技術 - ブラウザ、OS、 およびデバイスタイプ
UTMパラメータ - ソース、メディア、用語、コンテンツ、 キャンペーン

関連する問題