- 更新日: 2016年2月12日
- PHP & CakePHP
CakePHPでモバイル/スマホの判定
CakePHP3の開発でモバイル判定を行う方法を調べたところ、デフォルトのライブラリとして含まれている mobiledetect(Mobile_Detect)が使えるらしい。CakePHP の API としては、RequestHandlerComponent::isMobile() を利用できます。
— 環境 —
PHP 5.5.19
CakePHP 3.1.1
RequestHandlerComponent::isMobile() でモバイル判定
以下のどちらかでモバイルからのアクセスかどうかを判定できます。返り値は true または false となる。
1 2 |
$this->request->isMobile(); $this->request->is('mobile'); |
RequestHandlerComponent::isMobile() については以下参照。
RequestHandlerComponent::isMobile() / Request Handling – CakePHP Cookbook 3.x documentation
$this->request->is(‘mobile’); の書き方については、CakePHP 2 のドキュメントで発見しました。CakePHP 3 で試したところ、こちらの書き方でも動作しました。
リクエストとレスポンスオブジェクト – CakePHP Cookbook 2.x ドキュメント
モバイル判定される UserAgent
User Agent で判断するらしく、以下の文字列がユーザーエージェントに含まれる場合はモバイルからのアクセスと判定するそうです。
————————-
Android
AvantGo
BlackBerry
DoCoMo
Fennec
iPad
iPhone
iPod
J2ME
MIDP
NetFront
Nokia
Opera Mini
Opera Mobi
PalmOS
PalmSource
portalmmm
Plucker
ReqwirelessWeb
SonyEricsson
Symbian
UP.Browser
webOS
Windows CE
Windows Phone OS
Xiino
————————-
以上です。
- PHP & CakePHP の関連記事
- PHP+MySQLでNo such file or directoryエラー
- bin/cakeコマンドでintlエラーが出る場合の対処(CakePHP)
- CakePHPアプリケーションをCapistranoでデプロイ
- Integrity constraint violation:Column ‘created’ in order clause is ambiguousエラー/CakePHP
- CakePHPでDB関連テーブルのレコード・データを取得
- CakePHPでカラム属性に別名/エイリアスを付ける仮想フィールド
- CakePHPで日付選択フォームのカスタマイズ
- CakePHP3で現在のコントローラー名・アクション名を取得
- PHPインストールでconfigure: error: freetype.h not foundエラー
- CakePHPでログイン後に元のページにリダイレクトさせる
Leave Your Message!