1

GWTP に基づく gwt アプリケーションがあります。アプリは 2 つのバージョン (タブレットとデスクトップ) をサポートし、異なるウィジェット ライブラリ (sencha gxt と sencha touch) を使用します。これらのライブラリは、ホスト ページで異なる css ファイルを必要とします。さらに他のcssは互いに競合しています。ホスト ページに異なる css ファイルを読み込むにはどうすればよいですか?

gwt mobilewebapp sampleについては既に読みましたが、それらは単一の html ページとコンポーネントの異なる実装を使用しています。

4

3 に答える 3

2

Useragent を確認して、配信する CSS ファイルを決定できます。

ClientBundlesを使用することをお勧めします。これにより、必要な CSS スタイルのみが配信され、ページが高速化されます。

Entrypoint では、配信する css ファイルを決定するだけです。

if(useragent == "desktop") {
   YourStyle.getTheme().getMGWTClientBundle().getDesktopCss().ensureInjected();
} else {
   YourStyle.getTheme().getMGWTClientBundle().getAppCss().ensureInjected();
}

または、css ファイル内で切り替えを行うことができます。ただし、とにかく ClientBundles を使用する必要があります。

そこには次のようなものがあります:

@external gwt-button;
@if user.agent safari {
    .gwt-Button {
        ...
    }
}

@external gwt-button は、難読化エラーを回避するためのものです。@external * も使用できます。

于 2012-12-21T17:07:19.967 に答える
1

css ソースとして JSP ファイルを使用して、サーバー側でこれを行うこともできます。次に、JSP ファイルで、要求しているユーザー エージェントなどに基づいて、送信するプロパティのセットを決定します。

もう 1 つのオプションは、ホスト ページを JSP ファイルとして記述することであり、要求に基づいて適切な CSS ファイルを含めることができます。
これは非常に簡単な方法ですが、web.xml で JSP プロセッサを有効にする必要があります。また、デプロイされたシステムに Java コンパイラーが必要ですが、これは Web サーバーに JRE のみをインストールする場合には当てはまりません。

于 2012-12-21T17:25:43.147 に答える
0

css ファイルをロードする 2 つのクラスを作成する必要があります。

gwt.xml ファイルのタイプに関連するいくつかのことを行うことができます

<replace-with
    class="com.test.classMobile">
    <when-type-is
        class="com.Test.classBrowser" />
    <when-property-is name="tablet.user.agent" value="ipad" />
</replace-with>  

これを試してみてください..100%確信が持てません

于 2012-12-25T12:54:18.333 に答える