ionic-team / ionic-team/ionic-framework

bug: Angular Ionic Android back button callback is executing twice

Đang mở
#30,115 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
triage
Ngôn ngữ chính
TypeScript
Star
52.7k
Fork
13.3k
Merge trung bình
1 ngày 15 giờ
Pull request đã merge (30 ngày)
51

Mô tả

### 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_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.