2

phonegap でデバイスをチェックする方法は?.実際には、アプリケーションがタブレットまたは Iphone でのみ実行される必要があります。Android タブレットまたは iphone Ipad でのみ実行される他の電話でアプリケーションをブロックする必要があります。phonegap でチェックすることは可能ですか.. ?

ありがとう

4

3 に答える 3

7

はじめに

いくつかの利用可能なソリューションがあります。一部はjavascriptによって提供され、一部は無料で一部は有料サービスです。さらに、サーバー側のものとクライアント側のものがありますが、このメールから、クライアント側のソリューションが必要だと思います.

クライアント側の検出:

モダナイザー-

遅れをとっているブラウザをサポートしなければならないまでは、クールな新しい Web テクノロジを利用するのはとても楽しいことです。Modernizr を使用すると、ブラウザが機能をサポートしているかどうかに関係なく、条件付きの JavaScript と CSS を簡単に記述して、それぞれの状況を処理できます。プログレッシブエンハンスメントを簡単に行うのに最適です。

良い :

クライアント側のみ、サーバー側コンポーネントが存在しない

高速ですが、12kb の JavaScript フレームワークとしてはまだ大きいです。モジュール性があるため、必要に応じて小さくすることができます。

悪い :

サーバー側の検出よりも少ない情報しか実行できません。

Modernizr 自体は、ユーザーのブラウザー機能を調べる優れた方法です。ただし、その API にはブラウザー自体でしかアクセスできません。つまり、サーバー ロジック内のブラウザー機能について知っていても、簡単には利益を得ることができません。

例 :

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>Modernizr Example</title>
      <script src="modernizr.min.js"></script>
    </head>
    <body>
      <script>
        if (Modernizr.canvas) {
          // supported
        } else {
          // no native canvas support available :(
        }  
      </script>
    </body>
    </html>

JavaScript ベースのブラウザ スニッフィング

これがモバイルを検出するための (学術的に) 最悪の方法である可能性があることは議論の余地がありますが、それには利点があります。

良い :

単純

悪い :

デバイスの種類のみが表示されますが、デバイスのバージョンは表示されません。たとえば、iPad が使用されていることは示されますが、バージョン 1、2、または 3 である場合は示されません。

例 :

<script type="text/javascript">     
    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("IEMobile") > 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));     

    if ( isMobile && isSmallScreen && document.cookie.indexOf( "mobileFullSiteClicked=") < 0 ) mobileRedirect(); 
</script>

より詳しい情報

このトピックに関する別の記事/回答があります。ここで見つけてください

于 2013-06-21T08:36:41.923 に答える
4

別の回答ですでに説明されているように、ユーザーエージェントを使用して、JavaScriptでそれを行うことができます。

ただし、Cordova/PhoneGap Device API を使用することもできます

http://cordova.apache.org/docs/en/2.8.0/cordova_device_device.model.md.html#device.model

var string = device.model; の使用

文字列には iOS モデルが含まれます

iPad 1、iPad 2、または iPad Mini のいずれであるかを知りたい場合に備えて、ネイティブからのすべての情報を提供します

たとえば、「iPad2,5」は iPad Mini Wifi です。

マッピング情報については、この Web サイトをチェックしてください http://theiphonewiki.com/wiki/Models

于 2013-06-21T15:20:16.937 に答える