0

gwt または gwt ブートストラップで、Web アプリが実行されているデバイスを見つける方法はありますか。デバイスがiPhone、タブレット、デスクトップ、iPadなどの場合のように、助けてください。

4

2 に答える 2

2

設定

GWT を使用すると、遅延バインディング メカニズムの実行中に解決されるプロパティを定義できます (アプリの起動シーケンスの一部です。こちらの Deferred Binding の要素を 参照してください)。たとえば、アプリのファイルで次のように定義します。gwt.xml

<define-property name="formfactor" values="desktop,tablet,mobile" />

そして、これを同じファイルで提供します。

<property-provider name="formfactor">
  <![CDATA[
    // my User Agent String-parsing JavaScript code 
  ]]>
</property-provider>

完全な例については、GWT サンプル アプリであるMobileWebAppを参照してください。具体的には、FormFactor.gwt.xmlを見てください。

使用法

プロパティをセットアップしてそのプロバイダーをプログラムすると、アプリ内でプロパティの値に到達できる複数の場所ができます。

  • CSS:

     @if formfactor mobile {
       /* my mobile form factor-specific rules */
     }     
    

    (サポートされているルールの詳細については、CssResourceを参照してください)

  • モジュールのXML 定義(例: ClientFactory の選択用):

    <replace-with class="com.my.client.ClientFactoryImplDesktop">
      <when-type-is class="com.my.client.ClientFactory" />
      <when-property-is name="formfactor" value="desktop" />
    </replace-with>
    
  • ジャバコード?deferred binding 経由のみ

于 2013-07-18T13:39:51.393 に答える
1

クライアントが実行されているブラウザを知るために、ブートストラップはまったく必要ありません。

電話するだけ...

Navigator.getUserAgent() 

...ブラウザのユーザーエージェントを取得します。

利用可能なすべてのユーザー エイジャーのリストは次のとおりです。

http://www.useragentstring.com/pages/All/

たとえば、ユーザー エージェント文字列で「ipad」の一致を確認します。

于 2013-07-18T13:33:05.977 に答える