フルブラウザとjQueryMobileインターフェイスを備えたWebサイトがあり、ユーザーは2つを切り替えることができます。それらの設定はCookieに保存されます。デフォルトでは、サイトは設定Cookieなしで訪問者にフルバージョンを提供しますが、最近のスマートフォンユーザーにとってより良いものにするために、デフォルトをJQMにします。したがって、基本コントローラークラスのコンストラクターに次のコードがあります。
class BaseController
{
protected $mobile; // must be 0 or 1, cookies can't handle boolean 'false'
public function __construct()
{
if (isset($_COOKIE['mobile']))
{
$this->mobile = $_COOKIE['mobile'];
}
else
{
$this->mobile = $this->isSmartphoneWithCookies();
setcookie("mobile", $this->mobile, time() + 7776000, '/', ''); // 90 days
}
}
private function isSmartphoneWithCookies()
{
$SMARTPHONE_WITH_COOKIES = "android.+mobile|blackberry|ip(hone|od)|opera m(ob|in)i";
return preg_match("/$SMARTPHONE_WITH_COOKIES/i", $_SERVER['HTTP_USER_AGENT']) ? 1 : 0;
}
// the rest of my controller class....
}
ここで私は正確さよりも速度を好むので、ここで提案されているような低速で最新のルックアップサービスを探していません:シンプルなスマートフォンの検出
訪問者がCookieとJQMをサポートする現在のトップスマートフォン/タブレットブラウザの1つを持っていることを簡単に示します。
誰かが私の$SMARTPHONE_WITH_COOKIESの改善を提案できますか?または、私のユースケースに適合するUA署名のコレクションを教えてください。具体的には、リストにブラックベリーを入れても安全ですか?人気のある対応ブラウザを見落としていますか?