activityBackPressedEvent
не относится только к странице, это глобально для вашей деятельности, которая содержит все страницы. Как правило, вы не будете добавлять более одного прослушивателя событий к этому событию.
Вы можете сделать что-то вроде ниже, чтобы справиться с этим на уровне страницы, вероятно, в модуле приложения / main.ts
application.android.on(application.AndroidApplication.activityBackPressedEvent,
(args: application.AndroidActivityBackPressedEventData) => {
const page = frame.topmost().currentPage;
if (page.hasListeners(application.AndroidApplication.activityBackPressedEvent)) {
args.cancel = true;
page.notify({
eventName: application.AndroidApplication.activityBackPressedEvent,
object: page
});
}
});
С приведенным выше кодом, activityBackPressedEvent
будет срабатывать на каждой странице, где есть слушатель.
Теперь на вашей странице / компоненте, в котором вы хотите настроить поведение, вы делаете это,
// Inject Page
constructor(private page: Page) {
this.page.on(application.AndroidApplication.activityBackPressedEvent, this.onBackButtonTap, this);
}
onBackButtonTap(data: EventData) {
this._ngZone.run(() => {
this.router.navigate(['/parameters']);
});
}