ionic-team / ionic-team/ionic-framework

bug: Angular Ionic Android back button callback is executing twice

Open
#30,115 0 comments 0 reactions 0 assignees View on GitHub
triage
Dominant language
TypeScript
Stars
52.7k
Forks
13.3k
Avg merge
1d 15h
Merged PRs (30d)
51

Description

### Prerequisites

- [X] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#creating-an-issue).
- [X] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [X] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already report this problem, without success.

### Ionic Framework Version

v8.x

### Current Behavior

`app.component.html`:
```html



```

my page (component) TS file:
```ts
import { Component, inject, OnDestroy, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { Subscription } from 'rxjs';
import { Platform } from '@ionic/angular/standalone';

@Component({
selector: 'e-test',
standalone: true,
imports: [CommonModule, RouterModule],
templateUrl: './test.component.html',
styleUrls: ['./test.component.scss'],
})
export class TestComponent implements OnInit, OnDestroy {
private readonly _platform = inject(Platform);
private _backSub!: Subscription;

ngOnInit() {
this._backSub = this._platform.backButton.subscribeWithPriority(
101,
() => {
console.log('back button called');
},
);
}

ngOnDestroy(): void {
if (this._backSub) this._backSub.unsubscribe();
}
}
```

As far as I can see, everything is correct! But my callback will be called twice!
Can someone help? Thanks a lot ❤️

### Expected Behavior

The callback should be called only once, because we subscribed to `subscribeWithPriority` only once... And we also unsubscribe from it, whenever the component is destroyed.

### Steps to Reproduce

1. Simply click the Android native back button.
2. Then you will see that 'back button called' console log message shows twice.

### Code Reproduction URL

https://stackblitz.com/edit/wusmwpve?file=src%2Fapp%2Fexample.component.ts

### Ionic Info

Ionic:

Ionic CLI : 7.2.0

Utility:

cordova-res : not installed globally
native-run : not installed globally

System:

NodeJS : v20.11.0
npm : 10.2.4
OS : Windows 10

### Additional Information

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.