0

私は当初、デスクトップ PC ブラウザー専用の GWT アプリケーションを開発しました。スマートフォンやタブレットでも利用できるようにすることにしました。ユーザーエージェントごとに異なる .css を作成しました。ここで私の質問は、ユーザー エージェントのタイプに基づいて、これらのファイルのどれをロードするかをどのように決定できるかということです。この戦略は良いものですか、それともより良い方法がありますか?

4

2 に答える 2

2

ユーザーエージェントに従って実装を交換するには、組み込みの GWT 機能であるdeferred bindingを使用できます。

module.gwt.xml に次のように入力します。

<module>
   ...
  <inherits name='com.google.gwt.sample.mobilewebapp.FormFactor'/>
  ...
  <!-- Use ClientFactoryImpl by default -->
  <replace-with class="com.google.gwt.sample.mobilewebapp.client.ClientFactoryImpl">
    <when-type-is class="com.google.gwt.sample.mobilewebapp.client.ClientFactory"/>
  </replace-with>

  <!-- Use ClientFactoryImplMobile for mobile form factor. -->
  <replace-with class="com.google.gwt.sample.mobilewebapp.client.ClientFactoryImplMobile">
    <when-type-is class="com.google.gwt.sample.mobilewebapp.client.ClientFactory"/>
    <when-property-is name="formfactor" value="mobile"/>
  </replace-with>

  <!-- Use ClientFactoryImplTablet for tablet form factor. -->
  <replace-with class="com.google.gwt.sample.mobilewebapp.client.ClientFactoryImplTablet">
    <when-type-is class="com.google.gwt.sample.mobilewebapp.client.ClientFactory"/>
    <when-property-is name="formfactor" value="tablet"/>
  </replace-with>

</module>

次に、GWT.create(ClientFactory.class) を呼び出して、実行時に適切な実装を取得します。CSS の場合、CSSResource または ClientBundle のサブクラスを使用します。ソースはこちら。

于 2013-09-12T07:44:14.260 に答える
1

モバイル gwt アプリの作成にmgwtを使用しています。

ユーザー エージェントに基づくテーマがあります: https://code.google.com/p/mgwt/source/browse/src/main/java/com/googlecode/mgwt/ui/client/theme/MGWTThemeBaseThemeStandardImpl.java

バンドルでは、異なる CSS を分離できます。CssResources を使用しない場合は、StyleInjector を使用できます

于 2013-09-11T20:13:15.880 に答える