2011-12-08 7 views
2

スマートフォンやiPhoneではなく古い携帯電話でユーザーがウェブサイトにアクセスしたときの識別方法。私はJoomla 1.7でjQuery-Mobileを使用しています。古いデバイスのモバイル検出とサポート

私はこのスクリプトを使用します。

<script type="text/javascript">// <![CDATA[ 
var mobile = (/acer|alcatel|audiovox|avantgo|blazer|cdm|digital paths|elaine|epoc|handspring|iemobile|kyocera|lg|midp|mmp|mobile|motorola|nec|o2|openwave|opera mini|operamini|opwv|palm|panasonic|pda|phone|playstation portable|pocket|psp|qci|sagem|sanyo|sec|sendo|sharp|smartphone|symbian|telit|tsm|up-browser|up.browser|up.link|vodafone|wap|windows ce|xiino|ericsson|sonyericsson|iphone|ipod|android|blackberry|samsung|nokia|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase())); 
if (mobile) { 
    document.location = "http://mysite,com/mobile"; 
} 
// ]]></script> 

サイトはそうでHTC、iPhone、ノキアとでうまく動作します。 私の友人はいくつかのエリクソンでテストされていますが(モデルはわかりませんが)、サイトは機能しません。それはPCサイトだけを表示し、モバイルは表示しません。

答えて

0

JavaScriptはJavaScriptをサポートしていますか? (それはあなたのウェブサイトのUXには影響しない場合)、この回避策を使用することができない場合:

  1. は、記述(例えば "でサイト全体
  2. タイプを重ねているのdivコンテナを作成します。このサイトは、それがないモバイルデバイスまたはサポートされている1ここで
+0

サポートについて知りません。 – user869470

+1

最初のページでPHPでブラウザやオペレーティングシステムをチェックして、ユーザをモバイルサイトにリダイレクトしてみませんか? – Jazzschmidt

0

これは私が携帯電話

function checkScreen() 
    { 
    if (screen.width <= 1000 && screen.height <= 1000) 
     window.location.replace("MobileURL"); 
    else 
     window.location.replace("URL"); 
    } 

基本的には、クライアントの画面の解像度を確認するかどうかを確認するために私のコードで使用ものです。それが本当に低い場合は、モバイルにリダイレクトするだけです。必要に応じてパラメータを小さくして画面を小さくすることができます。

+0

はまったく動作しません。スクリプトタグの間にこのコードが必要でした。 – user869470

+1

私はこのような画面解像度のチェックを避けることを強く推奨します。モバイルブラウザを識別するためには、それはまったく将来性のあるものではありません。 – Leon

+0

しかし、モバイルサイトを表示するにはどうすればjavascriptでモバイルデバイスをサポートできますか? – user869470

2

モバイル検出する3つの方法がある場合

  • はJavaScriptでdiv要素を非表示にするモバイル版」)とのリンクを提供し...

    1. コミュニティサポートされているブラウザ(ベストプラクティスと考えていないが、非常に一般的なあなたが今やっていること、)機能のサポートを通じて検出
    2. WURFL project
    3. カスタムブラウザースニッフィングを通じてスニッフィング。

    オプション1:あなたは本当に非スマートフォンをサポートするために探しているなら、おそらくあなたに最高の全体的なサポートを取得します。これは、コミュニティによって定期的に更新される既知のデバイスの大量のデータベースに対してユーザーエージェントをチェックすることによってバックエンドで実行されます。 JavaScriptに依存しないので、おそらく誰もが絶対にサポートする最良の方法です。

    オプション2:スマートフォン以外のユーザーは、スマートフォン以外のユーザーがサーフィンしているウェブが吸うことを知っています。それらのためにウェブのためにそれらを使用する可能性が低いです。トラフィックのパーセンテージとして、JavaScriptでの検出を使用して失われる人々の割合は、おそらく話す価値がありません。私が見たサイトでは、BlackBerry 5以上では2%未満、Android、iOS、またはBlackBerry 6+以外では1%未満でした。私はこれを行う前に、この検出方法をサポートしました。画面が小さい場合(isUnknownMobile)、Webkitベースのオプションの許容量に注意してください。これは、そのようなプラットフォームが呼び出されるのに十分な牽引力を得るまで、将来の校正を試みる試みです。

    <script> 
        var agent = navigator.userAgent; 
        var isWebkit = (agent.indexOf("AppleWebKit") > 0); 
        var isIPad = (agent.indexOf("iPad") > 0); 
        var isIOS = (agent.indexOf("iPhone") > 0 || agent.indexOf("iPod") > 0); 
        var isAndroid = (agent.indexOf("Android") > 0); 
        var isNewBlackBerry = (agent.indexOf("AppleWebKit") > 0 && agent.indexOf("BlackBerry") > 0); 
        var isWebOS = (agent.indexOf("webOS") > 0); 
        var isWindowsMobile = (agent.indexOf("Windows Phone OS") > 0); 
        var isSmallScreen = (screen.width < 767 || (isAndroid && screen.width < 1000)); 
        var isUnknownMobile = (isWebkit && isSmallScreen); 
        var isMobile = (isIOS || isAndroid || isNewBlackBerry || isWebOS || isWindowsMobile || isUnknownMobile); 
        var isTablet = (isIPad || (isMobile && !isSmallScreen)); 
        function mobileRedirect(mobileView){location.replace((mobileView)?mobileView:"/mobile/index.jsp");} 
    </script> 
    

    オプション3:特徴検出クライアントがモバイルの場合、おそらくテストのはるか未来防音方法です。サポートされている機能を確認するには、Modernizr Projectを使用することを検討してください。たとえば、デバイスに小さな画面があり、キャンバスをサポートしている場合や、タッチインターフェイスを備えている場合はおそらくモバイルです。ここでも、これはフロントエンドベースの検出であり、JavaScriptに依存しています。

    あなたが本当に移動する人をリダイレクトしたいのであれば、WURFLプロジェクトがあなたの最善の策です。

  • 関連する問題