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