現時点では正常に動作し、地理位置情報を使用するアプリがあります。com.google.gwt.geolocation.client.Geolocation を呼び出すメソッドがあります。
既存のエントリ ポイントを拡張し、このメソッドをオーバーライドしてネイティブの Geolocation ライブラリを使用するようにしたので、許可ポップアップは表示されません。
コンパイルに 2 倍の時間がかかる 2 つのモジュールを避けるにはどうすればよいですか?
現時点では正常に動作し、地理位置情報を使用するアプリがあります。com.google.gwt.geolocation.client.Geolocation を呼び出すメソッドがあります。
既存のエントリ ポイントを拡張し、このメソッドをオーバーライドしてネイティブの Geolocation ライブラリを使用するようにしたので、許可ポップアップは表示されません。
コンパイルに 2 倍の時間がかかる 2 つのモジュールを避けるにはどうすればよいですか?
GWT では、通常、アプリケーションまたは perl.html
ページごとにエントリ ポイントがありますが、他のシナリオを使用することもできます。複数のエントリ ポイントを持つモジュール ファイル (.gwt.xml)、または複数のモジュールをロードするページ (.cache) を使用できます。 .js)、または同じモジュール (.cache.js) を別のページにロードすることもできます。
したがって、あなたの場合、1 つのエントリポイントと 1 つのモジュール ファイルを維持し、両方のページに同じコンパイル済みモジュールを含めることができます。この場合、エントリ ポイントにコードを記述して、各ページで何をすべきかを知る必要があります。
public void onModuleLoad() {
if (Window.Location.getPath().matches(".*page_1.html.*")) {
// do something
} else {
// do another thing
}
}
この場合、両方のページにすべてのコンパイル済みのものがあると考えてください。ただし、gwtコード分割を利用して、各ページに必要なものだけをロードさせることができます。
public void onModuleLoad() {
if (Window.Location.getPath().matches(".*page_1.html.*")) {
GWT.runAsync(new RunAsyncCallback() {
public void onSuccess() {
// do something
}
public void onFailure(Throwable reason) {
}
});
} else {
GWT.runAsync(new RunAsyncCallback() {
public void onSuccess() {
// do another thing
}
public void onFailure(Throwable reason) {
}
});
}
}
このアプローチの利点は、すべてのサイトで 1 回コンパイルするだけで、キャッシュを利用してすべてのページで同じコードを共有できることです。最終的なコードが高くなる、開発モードが遅くなるなどの欠点もあります。