This class should not be used directly by an application developer. Instead, use Location.
API
abstract class PlatformLocation {
abstract getBaseHrefFromDOM(): string;
abstract getState(): unknown;
abstract onPopState(fn: LocationChangeListener): VoidFunction;
abstract onHashChange(fn: LocationChangeListener): VoidFunction;
abstract readonly href: string;
abstract readonly protocol: string;
abstract readonly hostname: string;
abstract readonly port: string;
abstract readonly pathname: string;
abstract readonly search: string;
abstract readonly hash: string;
abstract replaceState(state: any, title: string, url: string): void;
abstract pushState(state: any, title: string, url: string): void;
abstract forward(): void;
abstract back(): void;
optional historyGo(relativePosition: number): void;
}
getBaseHrefFromDOM
stringstring
getState
unknownunknown
onPopState
VoidFunctionReturns a function that, when executed, removes the popstate event handler.
VoidFunction
onHashChange
VoidFunctionReturns a function that, when executed, removes the hashchange event handler.
VoidFunction
href
stringprotocol
stringhostname
stringport
stringpathname
stringsearch
stringhash
stringreplaceState
voidany
string
string
void
pushState
voidany
string
string
void
forward
voidvoid
back
voidvoid
historyGo
voidnumber
void
Description
This class should not be used directly by an application developer. Instead, use Location.
PlatformLocation encapsulates all calls to DOM APIs, which allows the Router to be platform-agnostic. This means that we can have different implementation of PlatformLocation for the different platforms that Angular supports. For example, @angular/platform-browser provides an implementation specific to the browser environment, while @angular/platform-server provides one suitable for use with server-side rendering.
The PlatformLocation class is used directly by all implementations of LocationStrategy when they need to interact with the DOM APIs like pushState, popState, etc.
LocationStrategy in turn is used by the Location service which is used directly by the Router in order to navigate between routes. Since all interactions between Router / Location / LocationStrategy and DOM APIs flow through the PlatformLocation class, they are all platform-agnostic.