1

GWT で書かれたアプリケーションがあります。モバイル ブラウザでサイトを開いたときに使用する同じアプリケーションのサブセットを提供できるようにしたいと考えており、これを実現する方法として mgwt を検討しています。

私が期待している方法は、既存の GWT アプリケーション プロジェクトを mgwt コード (いくつかのロジックを共有して) で拡張し、2 つのエントリ ポイントを作成することです。私の質問は、単一の html ページを指定してこれを管理する方法ですか? この記事で説明されているアプローチを見たことがありますが、それが mgwt でうまく機能するかどうか、または検討すべき別のパターンがあるかどうか疑問に思っていました。

4

2 に答える 2

1

2 エントリーポイントは必要ないと思います。上でキランが言ったように、ビュー コンポーネントを除くすべてのコードを再利用する必要があります。GWT のアクティビティと場所のモジュールを使用した場合、ビュー コンポーネントは残りのコードから完全に分離する必要があります。

この場合、モジュール xml 定義の正しい定義に関連付けられた GWT.create メソッドを使用できます。

// エントリ ポイントで:

private IClientFactory clientFactory = GWT.create(IClientFactory.class);

// モジュールの xml 定義で:

 <replace-with class="com.vv.xui.client.DesktopClientFactory">
        <when-type-is class="com.vv.xui.client.IClientFactory" />
        <when-property-is name="formfactor" value="desktop"/>
  </replace-with>
    <replace-with class="com.vv.xui.client.MobileClientFactory">
        <when-type-is class="com.vv.xui.client.IClientFactory" />
        <when-property-is name="formfactor" value="mobile"/>
  </replace-with>

フォームの formfactor プロパティは、次の例のように定義できます: https://code.google.com/p/gwt-cx/source/browse/trunk/gwtcx/gwtcx-core/gwtcx-core-client/src/main/リソース/com/gwtcx/FormFactor.gwt.xml

IClientFactory には、次のようなものがあります。

public interface IClientFactory {

    IHomeView getHomeView();
    ISearchView getSearchView();
    ...
}

IHomeView と ISearchView は、デスクトップ バージョンとモバイル バージョンによって実装されるビュー インターフェイスです。私の場合、ビューの実装は、関連するビュー インターフェイスを実装する UiBinder コンポーネントです。

DesktopClientFactory には、次のようなものがあります。

public class DesktopClientFactory implements IClientFactory {

private static final ISearchView searchView = new com.vv.xui.client.view.desktop.SearchView.SearchView();

    @Override
    public ISearchView getSearchView() {
        return searchView;
    }
...
}

このように、モバイルとデスクトップで異なるエントリ ポイントは必要なく、ビュー コンポーネントを除くすべてのコードを共有できます。

于 2014-04-24T07:47:44.790 に答える
0

googlecode の MobileWebApp を指すリンクのパターンは正しいです。基本的に、GWT には、GWT で推奨される MVP パターンに準拠した UI ビュー インターフェイスがあります。次に、利用可能な画面解像度に基づいて、UI ビューのさまざまな実装を行うことができます。明らかに、デスクトップとモバイルで同じ画面レイアウトは望ましくありません。そのため、さまざまなフォーム ファクターに合わせてビューを再設計し、デバイスのフォーム ファクターに基づいて正しい実装を呼び出す必要があります。既に gwt アプリケーションがあるため、mgwt を使用してモバイル用のビューを作成し、作成済みのコードを再利用できます。それでも、mgwt を使用してモバイル用の新しいビューを作成する必要があります。単純な置き換えではありません。

于 2014-04-14T10:44:14.793 に答える