2012-04-02 5 views
22

を。モバイルデバイス検出 - 私は現在、おそらく非常に簡単である携帯電話のPHPの検出のためにいくつかのコードを探していますし、タブレットデバイス

は今、私はちょうど一つの問題を持っている - 私は、錠剤、携帯電話やWebページのための私のMVCフレームワークで独自のビューファイルを作成することを可能にします。だから、残りの携帯機器からタブレットを分割する必要があります。

現在、これは私が使用していることを、コードです:

public function isMobile() 
{ 
    if(preg_match('/(alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|panasonic|philips|phone|sagem|sharp|sie-|smartphone|sony|symbian|t-mobile|telus|up\.browser|up\.link|vodafone|wap|webos|wireless|xda|xoom|zte)/i', $_SERVER['HTTP_USER_AGENT'])) 
    return true; 
else 
    return false; 
} 

しかし、これでは十分ではありません - デバイスは、モバイルデバイスであるwheterのみチェックがある - それは、フレームワークを伝えるなど、標準でない場合は、私たちはコンピュータ上にいる。最後の部分は大丈夫です - しかし、私は、実際の携帯電話でモバイルデバイスの分割を作りたい - とタブレットでなければなりませんsecoundグループ、インチ

あなたがこれを達成するための良い方法でいくつかの入力を持っていることを、私は私の願いを明らかにしていることを、願って、と私は願っています。

ありがとうございます。ここで

+0

あなたの正規表現は大丈夫ではないか、この正規表現を複数(携帯用とタブレット用)に分割したいですか? – tonymarschall

+0

>ここには、各プラットフォームを個別に検出する方法のクラスがあります。 > http://code.google.com/p/php-mobile-detect/これは、タブレットのオペラでしか動作しません。タブレットに組み込まれているアンドロイドブラウザはモバイルを返します。 – hello

答えて

33

は、個別に各プラットフォームを検出するためのメソッドを持つクラスです。

+1

これは実際に質問に答えるでしょう - あなたはisMobile-checkの前にisTablet-checkを行うことを確かめるならば..錠はまた "携帯"としてマークされています - 論理的理由のために:) ありがとう、ジョー! – denlau

+3

ちょうど今日早く発見!私はこの質問に答えようとしていました。 +1 – pattyd

+0

このようなASP.NET用のものは何ですか? –

0

あなたはまたIS_MOBILEとis_tabletのように、モバイルデバイスの機能を検出するサービスですWURFL雲、のような、より包括的なソリューションを使用することができます。トラフィックの少ないサイトの無料プランがあります:http://www.scientiamobile.com/cloud

5

Mobile_Detectは、モバイルデバイス(タブレットを含む)を検出するための軽量PHPクラスです。特定のHTTPヘッダーと組み合わせたUser-Agent文字列を使用して、モバイル環境を検出します。 - 続きを読む http://mobiledetect.net

+0

ありがとう、それはかなり便利です。 – deathlock

8

古い質問ですが、ここではモバイル検出に関する私の意見になります。あなたがモバイルデバイスに固有のファイルをしたいあなたの質問、私はその理由を取ることができるで

あなたの状態は、モバイルクライアントやデスクトップクライアントのためのウェブサイトの別のバージョンを提示することです。

このアプローチは、特定の時点までOKです。その点をAndroidといいます。そのハードそれらのそれぞれのためif {} elseになります* 240 320から* 1600 2560までの解像度で毎日アクティブに~1.5 million Androidデバイスがあります。あなたが最も使用されるデバイスのリストを作ってみると、あなたがものだけをターゲットにしようとしたとしても、将来的に新しいデバイスをサポートするのは難しいだろう。バックには「モバイル」と「デスクトップ」カテゴリに分割する機器の古い方法を忘れて、新しいメソッドを作成することであった

私のアプローチA。その方法はブラウザの機能に基づいた「良い」ブラウザと「悪い」ブラウザで構成されています。たとえば、ブラウザがローカルストレージをサポートしている場合、「良い」カテゴリになります。このことから始め

は、私は、UIの観点から非常に基本的なウェブサイトの「ベース」バージョンを作成するが、これはクロスブラウザを動作する可能性を持っていました。ウェブサイトのこの基本バージョン(つまり、日の終わりに重要なので、 )すべてのデバイスで同じコンテンツを提示する、サイズ(少ない資産、小さいhtmlの)に非常に小さいことと、ブラウザの機能に基づいてますがなりますクライアント側で充実しています。

だから、最後に、あなたはOK、クロスブラウザに見えるという、非常に小さなフットプリント(HTMLのサイズや資産)を持っているウェブサイトで終わるだろうと、それは何も変更せずに市場にまで来て、新しいデバイスをサポートしています接続が不十分であっても高速に読み込まれ、ブラウザ機能に基づいてクライアント側で充実させることができます。

デバイスのサイズに基づいてウェブページを充実させることもできます。ブラウザが大きな画面を表示する場合は、より多くのアセットや広告を持ち込み、ウェブページをより美しくすることができます。ブラウザのレポートが小さな画面上にある場合、そのままにしておきます。

+1

実際、この答えは何に関わらず読む価値があります - それは私がこれまで考えていなかったクールなアプローチです:) – denlau

+1

このアプローチを完全に承認しており、これは私が達成しようとしているものですが、少なくともサーバー側では完了したと言われています! –