Vibe Google Analytics
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
@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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user