ちょっとした Hack。
ガラケーとかフィーチャーフォンとか呼ばれているものでは、IP アドレスを見ることでPCと見分けが可能だった。
しかし、スマホでは WiFi アクセスが可能なため、見分けることができない。
一応、UserAgent で見分けることはできる。
でも、UserAgent なんて偽装も簡単だ。
そこで、こんな方法を考えてみた。
if(typeof(ontouchend)=='object') スマホ用の処理 ;
単純明快。
typeof( ~ )
に、メソッドを書いている。本来は window.ontouchend だが、javascript の規約に従い、window は省略可能。
onTouchEnd メソッドは、PC にはないが、Android / iPhone には存在する。
onTouchStart でも、onTouchMove でも、onTouchCancel でもいいが、End が一番文字数が少ないので、これを使用した。
で、メソッドが存在すれば、typeof( ) で object という文字列が帰るので、スマホであることを確認できる。
存在しなければ undefined という文字列が帰るので、PCであることが確認できる。
IP アドレスチェックのように、サーバー側 CGI で完結する仕組みではない。
でも、これで「特別な」パラメーターを送る、など工夫すればよい。
問題点:
IP アドレスに比べれば、やっぱり偽装は可能だ。
でも、UserAgent よりは偽装しにくいだろう。
UserAgent を使えば、スマホとタブレットを見分けることも可能だが、上記の方法は区別できない。
UserAgent と同時に使って、偽装されていないか確認するなど、その程度の使い方にとどめるのがよいと思う。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |