如何在Ionic 2中自动检测视图更改

时间:2017-01-04 16:37:55

标签: ionic-framework ionic2

我有一个用例,我需要检测向用户显示的当前视图以向Google Analytics报告。我知道Ionic 2's View Lifecycle hooks但这不是我所追求的。

如果有办法解决问题,我们想知道什么?进入离子导航系统,每次用户导航应用程序时,订阅导航事件并获取路线或查看对象。由于Ionic 2不使用Angular2' Router,我无法使用以下内容:

export class AppComponent {
    private currentRoute:string;
    constructor(_router:Router,
                _location:Location) {
        _router.events.subscribe((event:Event) => {
            if (event instanceof NavigationEnd) {
                // When the route is '/', location.path actually returns ''.
                let newRoute = this._location.path() || '/';
                // If the route has changed, send the new route to analytics.
            if (this.currentRoute != newRoute) {
                ga('send', 'pageview', newRoute);
                this.currentRoute = newRoute;
            }
        }
        });
    }
}

有人知道如何在Ionic 2应用程序中订阅导航更改吗?

我目前的正确设置是:

Ionic Framework Version: 2.0.0-rc.4
Ionic CLI Version: 2.1.13
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.48

1 个答案:

答案 0 :(得分:2)

您可以订阅docs

中描述的App生命周期事件

更具体地说,您需要从App注入ionic-angular,然后在需要时添加这样的代码:

this.app.viewWillEnter.subscribe(viewCtrl => {
   console.log('Entering new view')
   console.log(viewCtrl)
})