使用sitecoreBeascon.js在Angular单页应用程序中进行页面访问跟踪

问题描述

我需要使用sitecore(Beacon.js)跟踪Angular单页应用程序中的所有页面访问 因此,我在inxex.html中添加了这一行,它仅记录一次页面访问,而不是每个组件访问。 有人可以帮我实现这一目标。谢谢...!

我认为我必须在AppComponent中编写一些代码,以便它可以捕获每个路由器事件更改...。但是不确定如何在此处调用beacon.js函数调用...。

解决方法

像这样在每个路由器路径上放置一个canActivateService。

    {
        path: "dialog",component: DialogComponent,canActivate: [canActivateService]
    }

这是服务:

import { ActivatedRouteSnapshot,RouterStateSnapshot } from "@angular/router";
import { Injectable } from "@angular/core";
import { CanActivate } from "@angular/router";
import { RestangularService } from "./restangular.service";
import { EventService } from "./event.service";

@Injectable({
   providedIn: "root"
})
export class canActivateService implements CanActivate { 

constructor(private rs: RestangularService,private es: EventService) {}
   // returns a true or false promise
   canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshot) {
      // all inbound route information is contained in the two params above
      // which can be logged,even asynchronously
      // return true or false here.
   }
}

请注意,还有大约五个其他“可挂接”事件。 canActivate只是其中之一。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...