【JavaScript】スマホとPCを判断する条件分岐|iPhone・Androidなどをユーザーエージェントで判断

このページでは、サイトアクセス時にブラウザが送信するユーザーエージェント(UA)を利用したモバイル・PCの条件分岐の例となりますが、ブラウザの Google Chromeではユーザーエージェントを段階的に廃止する予定となっています。

モバイルとPCの判断には画面サイズを利用する方法もあります。詳しくは以下のリンク先を参考にしてみてください。

モバイル・PCをユーザーエージェントで判断

JavaScriptを使用していると、スマートフォン・タブレット・PCによって処理を変更したい場合があるかもしれません。

今回は、そのような場合に使用できるJavaScriptの例となり、ユーザーエージェントを利用してスマホ・タブレット・PCの条件分岐を行う方法となります。

例では以下の2パターンの条件分岐となります。

  • 「スマホ・タブレット」と「PC」の条件分岐
  • 「スマホ」と「PC・タブレット」の条件分岐

「スマホ・タブレット」と「PC」の条件分岐

以下は、「スマホ・タブレット」と「PC」を判断する条件分岐の例となります。

また、スマホ・タブレットの条件は、iOS・Androidのデバイスとしています。

if(navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/i)){
	// スマホ・タブレット(iOS・Android)の場合の処理を記述
}else{
	// PCの場合の処理を記述
}

「スマホ」と「PC・タブレット」の条件分岐

以下は、「スマホ」と「PC・タブレット」を判断する条件分岐の例となります。

また、スマホの条件は、Androidスマホ・iPhone・iPod touchのデバイスとしています。

if(navigator.userAgent.match(/(iPhone|iPod|Android.*Mobile)/i)){
	// スマホ(iPhone・Androidスマホ)の場合の処理を記述
}else{
	// PC・タブレットの場合の処理を記述
}

ソースコードの説明

以下、ソースコードのポイントとなる箇所の説明となります。

ユーザーエージェントの取得|navigator.userAgent

例ではデバイスの種類を判断するために、navigatorオブジェクトのuserAgentプロパティを使い、ブラウザのユーザーエージェントを取得しています。

正規表現を使い文字列を検索|matchメソッド

Stringオブジェクトのmatchメソッドは、引数に指定した正規表現を、オブジェクト内の文字列から検索し、一致した文字列を返します。

例では、navigator.userAgentで取得したユーザーエージェントの文字列から、引数に指定した正規表現を検索しマッチするかを確認しています。

引数の正規表現は、判断するデバイスによって以下のように指定しています。

  • 「スマホ・タブレット」を判断する場合には、iPhone、iPad、iPod、Androidのいずれかの文字列の場合
  • 「スマホ」を判断する場合には、iPhone、iPod、Android.*Mobileのいずれかの文字列の場合

また、Android.*Mobileは、ユーザーエージェント内にAndroidとMobileの文字列がある場合となり、Androidスマホの場合のユーザーエージェントとなります。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。