41 lines
923 B
Plaintext
41 lines
923 B
Plaintext
@implements IDisposable
|
|
@inject NavigationManager NavigationManager
|
|
@inject AnalyticsService AnalyticsService
|
|
|
|
@code {
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
NavigationManager.LocationChanged += OnLocationChanged;
|
|
}
|
|
|
|
private async void OnLocationChanged(object? sender, LocationChangedEventArgs e)
|
|
{
|
|
await TrackPageView(e.Location);
|
|
}
|
|
|
|
private async Task TrackPageView(string url)
|
|
{
|
|
try
|
|
{
|
|
var relativePath = NavigationManager.ToBaseRelativePath(url);
|
|
if (!relativePath.StartsWith("/"))
|
|
{
|
|
relativePath = "/" + relativePath;
|
|
}
|
|
|
|
await AnalyticsService.TrackPageView(relativePath);
|
|
}
|
|
catch
|
|
{
|
|
// Ignore errors during tracking
|
|
}
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
NavigationManager.LocationChanged -= OnLocationChanged;
|
|
}
|
|
|
|
}
|