読者です 読者をやめる 読者になる 読者になる

ノラプログラマーの技術メモ

ネットで調べても出てこなかった情報を載せていきたい技術系ブログ。

UA以外でパソコンかスマホか判定する方法

パソコンかスマートフォンiphoneandroid)かを判定するには、ユーザーエージェント(UA)で判別する方法が有名。

だけどUAを偽装されたりすると、パソコンからのアクセスでもスマホの内容が見れちゃう。これを回避する。

厳密にはIPアドレスで判断できるのだけど、アクセス元が必ずしも3GやLTEだとは限らず、Wifi環境からのアクセスかも知れないので却下。

そのほか、IPアドレス以外・UA以外でパソコンかスマホかを見分けるには、ブラウザのTOUCHイベントが存在するかを調べる方法がある。

これがそのソースコード

<script type="text/javascript">
if (('createTouch' in document) || ('ontouchstart' in document)){
  // スマホからのアクセス
} else {
  // スマホじゃない
}
</script>

でもchromeエミュレーターだとタッチイベントも拾っちゃうから、もっと厳密にやりたいなら他の方法がいいかも。