bug: IonNav.canGoBack() sometimes throws exception: "Cannot read property 'apply' of undefined"
See original GitHub issueBug Report
Ionic version:
[x] 4.11.10
Current behavior:
I’m experiencing an exception when using local notifications in an ionic native application. The exception only happens sometimes and I was not able to come up with exact reproduction steps. I wanted to open this bug because maybe someone can help me to point to the right direction so I can come up with exact reproduction steps for this ionic bug.
Basically what happens is that the user receives a notification (while app is in foreground) and then he sends the app to background. After waiting for like 10-30mins he clicks on the notification (while the app is still in background; so not a cold start). By clicking on the notification we check whether we need to pop
any existing view before showing the new one with await this.chatRoomNavService.nav.canGoBack()
. This produces the following exception: vendor-es2015.js: Line 52957 : ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'apply' of undefined
:
Expected behavior:
No exception happens.
Steps to reproduce:
No clear reproduction steps available unfortunately. We were able to reproduce this bug mostly when app got sent to background for about 10-30mins & the phone screen got locked before clicking on the notification.
Related code:
In app.component:
```js
async ngOnInit() {
await this.platform.ready();
// Omitted code to simplify example
this.localNotifications.on('click').subscribe(async (not: ILocalNotification) => {
// Omitted code to simplify example
this.chatService.chatInfoOpened.next(false);
});
}
chat-room-nav.component:
ngOnInit() {
this.chatService.chatInfoOpened.subscribe(async opened => {
if (opened) {
// Omitted code to simplify example
} else {
// Omitted code to simplify example
if (await this.chatRoomNavService.nav.canGoBack()) {
await this.chatRoomNavService.nav.pop();
}
}
});
}
Other information:
Please note that the examples were significantly simplified so they are understandable.
Linking this issue to https://github.com/ionic-team/ionic/issues/20720 as they are related (both happens in the same scenario)
Ionic info:
Ionic:
Ionic CLI : 6.2.0 (/Users/borntraegermarc/.nvm/versions/node/v12.13.0/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/angular 4.11.10
@angular-devkit/build-angular : 0.803.23
@angular-devkit/schematics : 8.3.23
@angular/cli : 8.3.23
@ionic/angular-toolkit : 2.1.2
Cordova:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 8.1.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.3, (and 24 other plugins)
Utility:
cordova-res : not installed
native-run : 0.3.0
System:
ios-sim : 8.0.2
NodeJS : v12.13.0 (/Users/borntraegermarc/.nvm/versions/node/v12.13.0/bin/node)
npm : 6.14.2
OS : macOS Catalina
Xcode : Xcode 10.3 Build version 10G8
Issue Analytics
- State:
- Created 4 years ago
- Comments:7 (2 by maintainers)
Top GitHub Comments
As discussed in the other issue. This workaround solves the bug: https://github.com/ionic-team/ionic/issues/20720#issuecomment-606247668
Thanks for your answer @liamdebeasi
Understood. So this confirms my suspicion that this is not a “straightforward” issue. Even for ionic experts 😃
Please give us time until end of the week to come up with a simple repo with reproduction steps.