gwt または gwt ブートストラップで、Web アプリが実行されているデバイスを見つける方法はありますか。デバイスがiPhone、タブレット、デスクトップ、iPadなどの場合のように、助けてください。
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 経由のみ。
クライアントが実行されているブラウザを知るために、ブートストラップはまったく必要ありません。
電話するだけ...
Navigator.getUserAgent()
...ブラウザのユーザーエージェントを取得します。
利用可能なすべてのユーザー エイジャーのリストは次のとおりです。
http://www.useragentstring.com/pages/All/
たとえば、ユーザー エージェント文字列で「ipad」の一致を確認します。