• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perlでアクセス端末の解像度を知りたい)

perlでアクセス端末の解像度を知る方法

このQ&Aのポイント
  • アクセス元の端末(たとえばスマホなのかPCなのか)で表示する画像を変えたいため、アクセス端末の解像度を取得したい。
  • JavaScriptの情報はヒットするが、use Term::ReadKeyを使っても動作しない。
  • Androidの場合、スマホとタブレットの解像度が異なるため、正確な振り分けができず困っている。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

Mobile::UserAgentは古すぎか。。。 HTTP::MobileAgentのdisplayメソッドを使えば、多少ましでしょうが、 HTTP::MobileAgentは2012年が最新なのでどちらにしろ完璧な解像度を得るのは 不可能でしょう。

choei
質問者

お礼

ありがとうございます 教えて頂いた方法でどこまで解像度が得られるか試してみます

その他の回答 (3)

回答No.3

スマホは、完璧ではない(=全ての機種を判定できるわけではない)ですが、 Mobile::UserAgentのscreenDimsメソッドを使えばできると思います。 PCのクライアントの解像度はPerlだけで判定するのは無理でしょう。 HTTPリクエストに解像度の情報は含まれていないので。 javascriptで対応したほうがいいと思います。

choei
質問者

お礼

ありがとうございます 次も回答頂いてますので、そちらでコメントします

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

 それは解像度をチェックしているのではありません。単にユーザーエージェントを調べているだけで、解像度情報はHTTP要求ヘッダにはありません。  スマホもPCも同じmedia="screen"であっても、幸いにスマホはCSS3に対応していますから、その拡張であるmediaqueryが利用できます。  単純に端末の解像度で、ブラウザ自身の機能を使ってスタイルシートを切り替えるほうがはるかに容易です。javascriptのように端末でjavascriptを禁止していても利用できますし、スマホを回転させて縦横変えても切り替わります。

choei
質問者

お礼

ありがとうございます 確かにスタイルシートで切り替えする方が賢明のようですね そちらで考えてみます

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

そもそも、端末が送信してこない情報をサーバ側で知る術はありません。 セッション等でサイトへの初回アクセスを検知し、初回時にJavaScriptだけのページを送って解像度情報をPOSTさせてから、本来のコンテンツを送出するようにするなどの工夫が必要でしょう。

choei
質問者

お礼

ありがとうございます。 そうですよね、確かに送信してこない情報を知るすべなんてないですね

関連するQ&A