This class allows you to interact with the browser's history stack. Each "item" on the stack is represented by a single string, referred to as a "token". You can create new history items (which have a token associated with them when they are created), and you can programmatically force the current history to move back or forward.
In order to receive notification of user-directed changes to the current history item, implement the {@link PValueChangeHandler} interface and attach it via {@link #addValueChangeHandler(PValueChangeHandler)}.
URL Encoding
Any valid characters may be used in the history token and will survive round-trips through {@link #newItem(String)} to {@link #getToken()}/ {@link PValueChangeHandler#onValueChange(PValueChangeEvent)} , but most will be encoded in the user-visibleURL. The following US-ASCII characters are not encoded on any currently supported browser (but may be in the future due to future browser changes):
- a-z
- A-Z
- 0-9
- ;,/?:@&=+$-_.!~*()