0

私たちのアプリでは、特定の場所にいるときにデータが保存されているかどうかを確認してから、そこから移動する必要があります。したがって、ユーザーはブラウザの戻るボタンの要求を無効にできるはずです。ただし、履歴値の変更イベントを受信するまでに、URLはすでに変更されています。Historyクラスには、URLを元に戻す方法がないようです。誰かアイデアはありますか?

4

5 に答える 5

1

GWT 2.1 では、Activities と Places を取得します。そして、アクティビティにはmaystopメソッドがあります。これは、私があなたを正しく理解していれば、まさにあなたが望むものです。

于 2010-11-12T14:40:02.407 に答える
0

window.onunloadまたはwindow.onbeforeunloadjavascriptコールバックを 使用して、状態を確認/保存します。onbeforeunloadの例

于 2010-11-11T19:59:36.080 に答える
0

このイシュー レポートで、t.broyer は彼のコメントで、そのような動作は Places フレームワークの設計中に計画されたと説明しています。最も重要な部分は次のとおりです。

mayStop は間違いでした。または、アプリ内の内部ナビゲーションではなく、アプリのアンロード時にのみ呼び出されるべきでした。

ということで、あまり使わないほうがいいかも…

于 2012-08-02T12:54:49.973 に答える
0

私はまだこの動作を実際に実装していませんが、これが私の計画であり、おそらくうまくいくでしょう。

1) onHistoryChanged イベントを受け取り、それを許可することを決定するたびに、現在の historyToken をインスタンス変数のどこかに保存します。

2) ナビゲーションをブロックするページ上のアクティビティを追跡します。複数のファイルのアップロード、複数の編集など、複数のアクティビティを追跡できるデータ構造を使用します。

3) 新しい onHistoryChanged イベントを受け取ったときに、#2 のデータ構造が安全にナビゲートできないことを示している場合は、ページの変更を避け、#1 で保存した historyToken を復元します。次のいずれかの方法でこれを行うことができると想定しています。

a) History.newItem(oldHistoryToken, false) の呼び出しまたは

b) History.newItem(oldHistoryToken, true) を呼び出し、次の onHistoryChanged を強制的に無視するフラグを保持します。

繰り返しますが、私は実際にこれを実装していないので、どのように機能するか教えてください。

ユーザーがアプリを離れることを許可するリンクがあり、それも防止したい場合は、onbeforeunload も追加する必要があります。

于 2010-11-12T03:25:34.107 に答える
0

gwt-platformフレームワークのPlaceManagerImplクラスを見てください。特にメソッドとフィールドを扱うメソッド。onValueChange()onLeaveQuestion

それが役立つことを願っています。

于 2010-11-12T08:21:24.963 に答える